<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>java基于PDF模板导出（itextpdf） | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">java基于PDF模板导出（itextpdf）</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2024-03-22T01:05:20.000Z" itemprop="datePublished">2024-03-22</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:06:51.800Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/java/">🏷️ java</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="59f229a96db7eb8f4ecf217c1e913ea2ef3c1abbb2939d21248d78a1220be1be">f5d7027a76d40f8b4fe5a79716a716fbecb20eb8f4d5001876237e810c3efb1e0cd5a667f914e57cf8336398fc79bc3d3531d559aac5137a12eef8e3084ac98e3c72e5823e602265b6c5bb3f116e3ae4f6eabf3e9c9a1e9cc2cccb7cd4a559605f4ccc27fe0699cc3084a06cef0d195a2ca6aa5223c6e94ff166d230bebd6740301e9d4e88907f652af36912474dd805b0b2d480bef09fd1d490c305889d109c40992e1c6f5b1aa5fa51ce6ab93b9fe2bd856fdee5cc015e282e8bdca2ef8628ccfcd0d3f42a47853c3822aa4c861b68d8f969920397c18814f7a47282613fa45cf954134a171e578ae48fe9715dbaadfc41943aa614aea410fb0dd9970dc56cd0635870dd3f4ce418803e649b4c4e7fd9864951b23dc51ee088e21aca1f66c78e2a247c8a058b51f3d58727cee8dbb1704b18d88d5e8455e6f04d9526ae2f8987471c3311c98ef2348d5e0b2db75f12fbc3c811f58375cb7ca0411fb039da59e8d46de9c979988e50980fca17496de9783d15ed00308b38520d2b1429ae19191a7500bd4752325bb9fde4918ccb284a8d8fca20e899b19262c56d0b592a43d0c74bbf88ecc877b1818041d46a9c3cd6dd6d33051d0effc2edc28d33d3ab72103e81100d9c1cec3f9e2d96bd344cdb8b76330329190adef21f040afd607d996ccdd1f0bc454714e9abe3d9bd3d30b6595505349e9c4f455b3a4bf00cdf0f58312ff99a03ee1acc7a37babe4cb7060e4e1231b757a98c2765ff3e78b20979e6b0d20775c3356eced28de4b04956b0dbbeaa2651dc9a76c47efbad4e4efb8ee27dd59903bb05e0919f1115da5bb3f86a0fe0f457cc8832d998e8d5aa4fd8c1dcaf7a4556162219990d754272482bd3cdf1547f0c98ab07d83538a677c6d60ea4dc8e8ffcffb9edb42f046069cdff72f495a7a847d7f49ba6c192bb10998dee1d839436a400aa16ae95b639a86c2244102bee58ecc5a51844958a33b57c42a8013033cced6d18954082eab714eccab89b425316804b571b58ac730f8af6eb2e5abd96b173754c123f14d2c0f6f8d9f049259c37f05ffd1165fae077b19fab82b5cee05390777f3a97282ffcde1b9b0726274e76455fef80082bd65b965b04b2d6aa4d6413fa5af2fd34407c3d45284e8eda0daff9db2a6f58a5f8d192d5bdff255943a9e2fab97b1805da839f4f541729c515f4abf051f0437ec42b0ffab231802cbe5dd9f24a2201b69e6a4c065d4758d7f870423fc660af7e5ba35fcbe0172ca6a6e0d1eba84a53eeb52647c7ba2a063908e2cfa384971fcdc7d6726a7e9e49667a2a2ef6189ed47ebc90dc3f03c26c10de6ad3a2d3fec7952f2c6aad04e0028d3623302105cf59970cee5c47484e976c690794d083d1d4bd48de7c90109e74bd79423bb29d8045a1a491f77c2c5602b64b83c6896b7fd0f333761b2566b425143806edc6b437eb921068c13aa9399bc04c225974442666ee0af10fcf40d69caface00431ca814210c40314baa6395fe34d52b6b0ee4fac8f5080cc799a32d6286e11645269c608eeb9d692798821f28c88bee88cdca53ca307360f5ab95fec409afd359943d8c5b52e006bd7d7953834f67dce59ae4a41fa87698b8b80df323cb750f01ddbc38f38ae757d7dd35e1a56b10d3f1d47d30da5b3fa5f9c3c177bb7526598812e0a1c02da42d6306095aea40f8eaab26a392c987b014802a7e59352afffe7bff2ab3a378c63edc705399594f867193cbe05576845e8f714ff57067fe6cf93a2bc1f0fcbff94787271f64d8100a1c08e31b77d5a7d0fa5a51b3ec8b5622cb83b7e8d7db1febdf8ebe483dd7f923684733edfa8e9c85702b8b74343d9b1e39866d353a001bf6b2d272b1520b90a7684bd0efe4e5f124d09d984b7102625ea5a062a4a9398de121df20f31f0cff6e1b506979e4397d363299964fc5de3e2f980e964bbeee14172b946908d020a99b3dd82477c7e0535ad4043de1df2781e35b500506cb6a2362472d5b8ebfa7615410e052d5a4c35c70acb40664888d9953b7664977283de35c4febdaffdadf3566b213b39399c7a9f4b3cc444800c30d90193fcbab021d13fb1702baf354567e9876a786ef2e26e112fabbd66bf73d2f6b8372f9257f425e327c0f29d66f5ab52837110c0285aa41b96febad61b6a7777125d806a7ef74366ed330837bc08d08702ee360e81bc84a9512e5c2175a3e7a97a0dbd90e63b80865218781beaa5e07b86ed720c4167d47f7faecb8aba6a19be9cf61268fdb06d50713e9e63c195835bb5eae2ea12bc7a175acfc5225f9a42e95c563e67abed93e2cf4f24dee27d323e59c0d10754465190dccdf5656b2eeb0483db8c06317b3ba7d04a669321c54e62b20f34e505886241fc055cc7171c34d3c9f84c6fd101ba6d17bd046dda98362df131d2ae9eda025001b35aebdaebe7f63a993edfd80aca00b58468b2c03661df80eaeb4abe9fb08c9c296a5a1b1664fb4f40d2a5c433df6bb443d55a27bc6c36d4f9272d660812ea8c4bf143fe9fc7819e25ed3bb4f119d79b9766746799389f19a663f0844e58a871526953c1d0f1554bb4f0412811732bffec0dcf7be3d380740068cdd3d48615d772840b2d514821e9841c16d0d9466b0d82fe60ecfff4f6b8a42780663756f8715b6e710daf5359816f7042675f13e7955607d6371a29f3b977027079cb16237a543f623dce966b74f6edb9f741d6615ede8d532ec03b76083744cb9968d78a180ccf99283fdd178988529d74fd3ba59510d27f94e9d2344aabc6679bc41fcc60e12036384a46a81f069b3d57ffa75ce099e05f911015d1fbe9a0e6662cb451edc36cc7196936342641df7bd6d285b1229dd20442bcd605f27b8d8691881f88560d1f5e5f4fb7964a1e8466046eef9251401a81e182326287aa9744b44122b6dcb5d3abc09ddff9572076e136cbbc0bdb14f3fa199da1f315c037d77e6b00574bb0bbafa531480fd545cf04f54af742bbf4ef640f617f6b0e9ae174f7feef3513a9219201357e19002da3e68fa39d8c0737867c89fe19367abfd3eb79b80ef6dc034d0b980d061a48ba9063b727b33d3f88aea18ec8bd0c5c6d54ca3b9b075599c0dc0bcf0cb508ff1f3c9e1ccecaa214527a54056612301374ffcaf224df1788f0b10ff6a22ef2f0862a06d00a001a7671f36f765788e77e5d084e3a3b3fea6a024d74711d27e9fae69bcacdaf8c8293324941829a3b65e4ffeff940e84cbfc43e1b319fd82d7d48528b75cd5544d7d88345c59d3354be23e27e3fa1b45e0a0ffff3f46ecc7323a5699525879b7a9d687aac4ea675f852d058092368d43a12114df5b7e11318ae1d3dfc5b84ed6264ac9957a91d83b86e060fa24ee2fbe308db190e57d3fe46c0dbd5cc609058d239e911e2610fa90f6983c44fb63b36ab0834f5723cc5a10ebf6d25b2e3d8114eba12bad1c4199116edabc8a09825fa2caae610e6f5e99d8a96b1fbc19c1971590f5b51a403222644e6f5b71cd360781669474518e7c1a0646afbd5515b968c067ad868bc0ad3e870aefc980b2a8a6b19802de13b8f852b6d31583d263ce8e185b3870a13e16894fca96c6d6c50801cc1a317ea13ed28298bc5a531f8254105668f3842553fccd1d94dc61c64655cd5d5a5641a7cf14617a05c1990f0ae919328f43cd540c53dcfef5a22879a47d1097d009bfa96428c05edbc23cb1b94fa6aa49787ece37bc4a9d0fcd7b3230ac841aeefd58f4f0ed1153abf0411f07a0ae3d03f1cc919db39c59170eee3c1299ea06e42bb633f9398237822301d49d9014cce00da8622a32eaf3f5e7585daaae2a5ff24cb339401a0da67d066e6a0573b64b469b189d233f1bface4cd6fb47c58c3a38c7e93f5feae0be261cae9c99fddf2884fea8fc97948def4a1989fb8a44390debc9822150b019399bde66c863ae07cb5aaefb584b025b7e216b150508487633b190568fbdcb6260db86f48334c3b95e02a9280b9a338ae2b1869d5fbcc40aac4623f105e8ab82dc87a3792decb4b7385e236f8be5b1e4fe6c044fa61c6664e0ad521866ce510d205f567a074da63e893acb3e2e9fb6b0f48cff679cc3ae5fb3a55885056161ddfdead20f0a540396445b0bb5ad31bed33f7ffc6e16641edbcaff928bfa27ca2702f4af1ce799bc10f963eb371540b53ca591540b5cde59fc839d572bce7a913dd97c2528ba4ea56dac7b8bc8397be3294bb10eed7dc3aed7d85424ba960877b384c2a02f83b52cb8d4685c7852284d978048209b0431a0a57624e648b6076e34197008157f69d7159cdbb482e77b2f6a9055fefda7fad5b81d442a1f0678d5a84c687f1a95580acc6baaffc1ce9fa62342f88242bfedbdd7b30f9ad7141a95c11cba696f5759fa74b9971c6802b71117fa52d3f43a52479ba91cfcd451c4581aee30b0264ebb07f49529844759bfa54438525abb8cfae39985ff0f3ee82fc255a59efc45b172a39c8befff9b4e67f48e40ad692956217ccdcb2d9871a34646106e8d616bbe90cff3a090bad7da13efc3b90e824e0a409a277b23ad9db0fdbb07de6a3e86503d6d6445e46f36b890660b76ebb1f1013fd83a99b1d10c7bc3b9256eba4699e4915d0d668015f66a68ce80e3373bd785168481d0cda8edab0b3e940c1b24919cd7824b07ebb90b34ea3fdba8bc5026f1b300e6fdd54e802cbf6af44f5a9266c5651358261f807b8b5ff74be9c0a2268064df72595a99951d33bcb5f652df4dbe6a38ef7f0d095abe49edb1c077b7a5f2b5cb72cd50751bef54858a4933058b9cbfc974fa50ab08b53e7200b4e068a741922326c004fd0297b0bda86777c25ef4414a8794f050f682346ef9cda6a69ede5a9136281dc324098cb83277113dd6322795c77520f73d0ee46cd433548c10299b84addfa408c5b5ab6c620fd0e5c342310e3acb937b0b454fe0bdc7bc0290611ba9cab2cb53f42d8965e3899b8bd146f3ed304e1b3f1b93d16508c913573bf59b296fbb93d11b409205956cdca886deca4e49e5e405d2c6bbc2da254393e510f21fe02b52746437c417bdb9e25de06914744c5e8a21f08864136964201544452774993565f2a74f48ff74c6a45b7c7284827d162e684d45a2608837aaaa3b6197daa7f4829baeb9dd7ee0279436acf65ad3d6df0fad225cb2d99e9d3813080929fed4edc4414be3d45549f36455c994df856840a36878012e9d3a1e34dedaaca361073d36433a8ecc6dea6e29769927cce29d225e1501899459b11f2bcaeb0cb31030b07a8bc0eb284dec49ab0d93007fc67c41fb7870e999c3169626ffcbcaf678a4787a51b5d17a52e6af49fb10eba75254242bd97f8b463f533ec2b887c87eac4f1528d88448850089af8bafe2617383d69820ff898b2142a04d451a1f2a088fcb461639bde0445fc9ff2c012ee97ee2c898c7b19a42f039f3f25bf7cafceab102ad5a77f5489e378fad282757f6520cd86565e7d427e20d066a4d8baf6b3d667cf8ab2a4fcfb014a138b4f1b4339e166957df0370e071fdf479652489594a6465f944711c6b07a0e31091893932bb7779efbf9d438ea47767f37a18dd8e9febfacc22492378c3edbbda0bfe432eff932c0ef6bc74ad14acd9be5b797f1030686e85920141f859da0ca98f72350afe5a3e2c44149523e732d4ee1dabb05bf5b107e3424e6f79d27c6bba39db6e92dded8d778a83265bdef3edf6eb41e6a8c5dc9ac33f85602d8853dd243359043c82b687da76e4d85c9f50d2b824d2a64796e99e9d908884b154884de7271fbdf358e87ec02d279fc056cc76c714b6909e16879e5ad0347ff686947537ac9113dcbc3dbc02485ebaf88fc825c60b8f5f02872dbdf841275b802a7c81b235b6354192429f3a011923e8624328b05cfd31290ce384dfe654c5d1884fcc91f5561fd6d7caeacd224c4db826c95c4f27d4f680e5905942179db688039a0c00c675ed248d46d956a0682cbc630021c4d54bb9cec2a938faa9fbc91c1d44751800a12b72cba5a54e25c30fa040c481fe3bbad0d323d2fefd17b644848e14fc11da6bf7da3304444f44eb27d5a445c3a980c6852e308c4bb2ac93734febf78c158753605c967f10bd994becf64e801aca87201b36d1d50e478f713daed0927c0f5dd00836349024a4b431f6e21c113897de0fecbef429117ba9a0e65b807edbbe27bb0be7a65d0b47353977811619d51cb0fe8af49610860dc7114b8f04a68ce41d18fe44a1196403cb1fa1fd38e6a927faf5c7ae645b1f241c3c5b3e4b778f131fbfdbc9d7ee0c1d5bc29d66d2fc84b095d06afa756394f6446e63cd65155b445f7fbd20779983c21435ec070cce59e01515aedeaa408d53f3b151a3f307582df7ca424930c0872d7ecb676b6ff96104d456eacfe5262a0456b9b35b544bc0da4c2301e1de379f9dfbd4826a3c5af5b75aa9dd62d4991a3c7a1bac69c75316dafb2c42ca0b16b4aa2348c3101b099d237677ad73041d6a7991291d3cf139dab3a08cb7eee90043118e0a79ecebd8b44be9d7f0a47d580d4d2399a3089f385a8e27d6e4877c692d4f7b5b486568e728d822f0c8c2769967a70c8d9aba5af3d39146cbda5745c903833d0c2276b7afeee4aebc81bca5a682d5d200760b7017cb253f11fee2a9a94e0316a1e78ad5aac66ed27c144cfa0bd31a989743c47e8886241a4757e31123aba7e8d64340ca2de39777879216e99ad97d99ea4b13255f20f2741fb1ed78a91f1c1ce6efa47ffe97132d28d95ef311e8f1c136a1c19faf290ae568c8878b176d64de89e04dca48cfdc7beb49adb3f540faf5a628e76450987271ceb1de39ceb23de316a7342ed741e4910a15ae216794557c4af4cac55617ddf88104c5390406107b9f8dd1883175e46bbd3d292dbfa7d1590409512948fc352e9f83b7b08c8f4ad9a50810ecdfb5fbb972c25d3af936a0dc896c9c96935a415e193e8e8b713aa870d7eb0d00ab0724a238028ae6db94d57d2aa81f35603b4888d68a1448345fc3180815bc2fd04177568c84749eee100b189cb17fd2cf9af6f0edf46abb45aafdf9ad78f49d2c0fed900555ad8a96bfb326aec189f576f3df671a42e9f590f6b67e4b6f62fc7303b9a8368c63998885f811c97919edace103129e05a68e7b771aa7bb3e45170617f20cebd50ace9a6db9de2b73a742bcddc419ee6196ac63abca1625aaf006ca1b714f0cb13348b2272a717debfedeb80203084e7845ddb0e6299908298ccd2e690ebaaa6d10c27506f1bf56129dddd1629fd2e73e1eebcbd8117a8b7f7398adc4e831a870b84bb938345859828b0779e46d2faab53c6462397cceb30dcdd0e7bae787296ddbd079e261d3efedd319eb681c673dc6766871080346ba5005bf2f96b432521f644ec56c1b51a9ee2b0971f72c7fd231f80aae46b64b2a5f7d73d03d84639fd534ad356c9dd837662e74f1c26ca0b4e753b9fe7de344d1c2f952c36dbe4acb60cf0e9d804b3c2eeee3a14ae368560193a5197df634e7aa96339d657486ff410e0025a08bb5886b52bb9a3ad055538c6f201eb39494bba3f1bc0b56bc176716ddf4c0aa1edfdf133b69d5f7f51dd1201e4416ad6386eb03c818e0362cb7e2b97f4d74fefeec41da9dac14cc0632571bc55755cac3bcb8cf7ae591eec8118726aa7dc78870179adaaaf5a45e04ea8c865bcbdfc3a99540580583a1e1e2deb17745049688fb898bb60722aee1c42b23fd341f5da0cf9bc4a504a510ffb61a30da7716fbc5248b8e7f320400513cefa99d7c8724bd7faa2b7e0985138e7274200827ed25fec020e70bffedfe473ea27896e4a84bb1c09c38147bccac47063d65edeb55612a6e9dae907d116cb38b3fc56acb1f0be5adbaf4c0efa3955e99de58bb772fe7927b77d9dc6eebcdfd6c88fe3c5239681496e87a8591ea28464e74614dbc22fc74444df5d571f1ee3718c18607ffc9cacd7dfde4e5d60d1a79833c0b39117ea8049ddb9080773a8359c9dc6e45743449767e51210da60fc2411778450a2968e17c333e891f5408aa63ed50232b53590895a1d9879308fd5bb6da352bfe2dd54f98437adbf8b7a174aa6e6835e8d347de1756147b5d9275cad45a322256db1fb7ecbdf3893bfd502a2e94bac6e34f36dbab9ea51e154d9fe0a2cd70f58a1981550c9907e8c898a21a637924699327ba6136d207b499b783255640beffabb54624bd7b5363a2745cddf19fa6c0db95a0de46b3f75654c575b12bd435ab6838c1cb77481facc895d4f7aa3edc5fe57d2520a5dce5acf0c583928fd88eeb3aa0e7fada5bc457336552a2590ad1952e6bc63812ca4e1750064c2388606e1d11c6c182e9815c830a62a429ba5e1563b8eec722e38e1d643e9084ffed43bed4d665dd92cd22100df9203991100e0eec2370aab6db0ebfea254d72bba947503e8142ffd267be43006f3c89b18ee1761b318ed6277d92456ceed9a54ab55ad7a98d7415f526bb494b2f59f279df0e576d9f479c0946a43c6dd1bd119c676e098c3026f75fcb12ebfc120b329ff1c9daac9351a8c6e8ef750671f5457cf150bb6c7ad7fb24bc060094ff9ad8a433a823d51caa7da5428939af92a4c4d360d0ebf178b33295d639e2e9b936ba684db0be5b84f1465fdd7b84ba3f1876b8931108c0eb1e215fc114e642f7a9bbb67fd82b0323d1173fc9c0b70de4ec8307cfd25317195dfe96bd046cf8fbcc74ee12ea6f8341492d8b8536c8dcb18154f78923d6f5befb0c435100ee4925d64a5caea3ea55f73be57e22dc41b1ae2f3361073b43e77ba0b2ac4358254b0b24aa40959c407b1a7d7bde6d98171f95c17b3f5317d5295e437751ffa27a73821174931159bab017046428889e14cc9c551d6e260a98ed1efa99f64465a81860d3046fd8b6a11a04e500a002c1935fdee30e7cd4c95fadea838ab3d80f1f2ca5f89b9bf420bf0095a6062b7ab3e3e383c5e9f77271fe35e4fdb7595a453cdfa7ac256671ce6e7fbd8d7abf41beb6ea28f095e4e83a9ad3c8b506b68484797e1ac4eed6b307af1eeb78693edbe378f29291ee5bf8fc81131991a3f5b0d5098ccf63a67adf9f7a28f25abedafeed11bcff0c4178221fbc66cfae4d3363d07b35b18aa2ce37b830622f7bbaaef6470c964b426dd82b6899e93a436b514a4876616f4d684366145834f56bf4ae343921f607be09e85f623ab4adff02e661f58c7c9b936815850455230fc37fd1bea0efd2a6317d95b7d542a5fcc37121aef79eee32c1b192623daeea5d4af727433fb133a32e19749af0f00efacb387fb9bb4ee1ecef8c067700a9583b982482eb4773fd52b9ff627c18126e4d97f076f830e0f72bd55b5ad7b6497548fd73f1e3b2318350afeb4567b91a220732f37e435a457ccf9f6d4e86f8ea8efe7c0500ce8c805993c9817af329bf0e9afb201a5b7dc4ef9cdd75d2076d0171f0218750e7bbcb34f13cc5535149a103e75585409304d3929f6ec34959d7c36a3ce708ab715bf87ea7daec5eb6dbd1092986eae1ee8e8a0fd1d09e19de190c18f5a750bbffcb34af52c45b62f356425dc87435f7a271c7347b6f11bafe419a4acf4fe247f230cb26d62b47a9cb77804984a3cc3d0448d85beba84e41710fcd1e53a5d875f8a76aab8cb60d0dcd59def0d9ae859ca142a922d906865c903fa33de66fcc6d80ace6016a1a2c004333dc59f95fff42e5878322c24c432560d668280ac5240c99d0443b188b477bbf2663c85c821c6bc90bcbafb9bedb7e99af55011b6874431bfd8acb51da305f998cac955a6a06167411afee23d4ef6528d7a8f10ab7d36a54694f642cb9f633f927cb9e1455e7ad5272d4ad7b7a160947dad54bb4d00c03ec2684d72ef7903596b44137eb9a9f424bf305be2f89abf1da4654841f2babcd99f43025b736a79b6746de7138e14d41d5897d3a575dca1aaeca242a5e9c394709a059f63a6e82da591b80b3d691ff33023569b9be3dbc938b73a0df245ba2f8f70846cfc432b87f29b0d2331d55831a67b4be674cf37de76de45b91dc16ca8190dde8f4d8f8dcc654c69e5fa46b933e44ab751ca7d851bc17bd51c32b6c0a2e5befca7cb30e44baba80a27e73575a3e1aaf700f348b2de538389179d361ccfae76af1352cfe1487c1674f2c2b820dca8af767a2adb60d420da2695257e669ada11b451cf5a34f2022d6ee370af23608715dcacfbc9539e2a2c3b0e71710f8e562b7487916b39608e1a83022b2f337721ea699854b2a63a5ceb92ec3ac6ac0f9ac0b7141e82e82c3cd0a71c256695b45f598990464a0ed26671c7a19194f5a5aa5256b888c1e661b0d1f100ccf187d3c633368043d0df4f94ef93db967d22a11b995b5cc88fe866037c17168d4bf73f8acf01ef1495c3fba21de9a9619a0b5d489475b33c289392312c0fa5356661bee0811045e4b86e19b9557358f70b16383f68be4fabeaf12caaf57aa2ac347ae1936a099280e366057d4239d91630d9e89aead188fc6a85e3078c3e1e71388e11969775b2405cacdb8651fe8e88636459cbc440ec536b99c15b50d73c059c1f7d65fff155f55208b4f430c60ff6e10c91abe6f9aaa0d7ea159208902f80bb508c0f35e31176c64ff0e58f20e1543aafe4e537ae301109a5ea003ff49fd935aeca9b0c53f21c165a480a03aeca6e02456585c893be8531bdfa42cf668624c0c58b55a9e08de46f4c9d21b83adfa563c883069bbd2169a02c0124e5dd8e378e2393ff7f9b8bbc19d3b2b8b39ce7e2543694b36ed39d903d6ed3def4406c72f3886480ef2d2886da5ec6ecbce6b509483a5a61428f8916261d0c3d1d0b3ae4fc54abb94aa5a0f26cab9255849ad87c357254f555891a11e03aaab4b44d98385602fa9d8be58ea99b904342be3f5831369659fdae2f2f2cc6cd2e7c2c57a81a02670b3a57300a936806c4c5d8d3fbd52eaaed39ac15751c3a867edb232a2e5418b87255c10af58f64c0b077cf65e467521165594c1f85b29992623b5a14423c2efa7059f7a02ef6fb1df252612b01d16db8d3abbc2fffbda73a74f94e26f2eceb9652e2a1e45dc60839e414c54e0e1770cd8b3455917800af1254055789fead4db84272c03764993f198baca69f0dd5a250903731f5dcb0b5a7a78db27004165e43e4845b60c81506b1f68277e6d9c75a7bd9391afcf7b4e4540a472f532531fba9c4b542e8488191bc2f7b6e8d2020ea6fa84a09199f3fe32119bc3a497f99eb778d1f65a9e62bf0fdd3bdcbf4bbafebea22dd8ad175ee6b7d14f4c5f9273968ce55859cd5660b336a8c26f89d5cbc4b1c67be155267329a574522466ae79d048cc60be0030ae73d6ad9efc3d260e6b4ab06fc9f0d1aa6dc3d1845761b47be128f4c265ea736c66ea55eb10b4621b9baca8c4afe67004a4cefa7133ecf1684ba51c6199f6abc5a2a220ef17e22cf6083883530bf306294f56ea5ba297df10e5c6ef0fa014529774ed8792e1e438a23df43d5b29646c24de5d94ece9bd4243e1a7e8a7f7305c7b6f9cd288aa48edca7d9fb1a331a87ae49637d7956888bd11b64291999d6b3a38704217ee0b618432c8f00b05bbfe423fd4081117beef250af2b9f5eff70230bee3a0cb352de4c4d94d6762d076905b1d51939f2a2b695d1f5ab4c110f39bcf41e6aa9339f90fe8fa88d1c4f2397e679986fa851821830f86b99abe36ef1ba6850577859c7e2ab135e3fce498f5c388f1b8caa99a699c9a34a7f1a0ac69a9f8ec358e5e246f4e8eb0d69b656c04679f04f8e726825a132219969ec8756fc7c4dbe5e004dce73c8e0d3d0824e55f9710d65e09d000b51b5293e16cb2f0d1bc9780eb96e00277a2c257c7e2861034b2996fc1eed39247b2e9ec7b64efa1edba6456f0d208db8c180a98447a2105bcbc27add67cdda2990f6f70b7990b61ade1a9ee3198a6db69bbbd0a16852851764a198287045a94a60feb0b8d7bfa4cbf9c297033b6403f325977102e167bb22eeabd318522110e30728dedab044f9f6d0e62e3e0593119a9c8d03fd09422aaa49f885c96434ede0d36ad9a2101ef2db834b602bf91abd6ce259324b5a42d623b1af2feaec6e65e315bfae066ab9a422b6354d7e11c5eb2b088bea1ab6bff218defed52b12e158dcf89a356da0eda7d3e0963296cac01e047cbb205f410eec8456f07a3bf96c1081a82f00df51617be07e77b8a21f07f82e1cda9750f412fb06a8d1dab66b82d79b2eaf781b21ff102e4e7e21af31c07c64a5981e7010bc9217ec4aa3e8de40714074387504aeb4aa024f2b82ed964abada6726882ffc806fca3c40ab5e51b287a478335ac7520c11c1e759c957f1f4a79c0344259406e0f4e0b2547e59b9ee7c4eb04074d4a3a5dfe4a21101b0aec933e0fc38e8f201a92ab8786d670e1b0052dc178e58f5ef21c659f560dbcee42ff816cf28eecd8553d2afaa8197225eef53bff6d6c52c379f03bc2e8e7c0e75e99dffd91f84331365ab95fddaf0b551dd57c327561f833eb6f07b99f1c7d3d86ddba898a210181314d42e48969e6807bffb5031cee7505dac2a841ec1cee6923488a43365f87acbc6aa69d21b118d061c67c5c5932ec3ad2f794481d86a0497026c3d195393f7348d6a55c623fe9f697fe7e9a921bc84d5b85263c692bfb9407e38bcad96cbb966f01da65086655c8f4f6c866ae0e5180d99e42c31e0ce65fe92477b11f59a481634f6187d6a7112970c2be99b5453641ede84c854339e536349696c5e294da74c9273fd2fcc93f58747bf1e225a27f61c53635b5b6a8b335f4306253a3e01db69af165fec0ab02256427c864c016c2c3cc4ac3e22ec50c49deeb4ea76e2873c464e81c25cad0dbac8a8709a977b8ace0ca7000e0c625ebd5249d56b68a7568b4d218c05b42a21f8429b868e34ef8a0714d6dad33a32441b23e8622a3efdd9b0b462d1eac21bbeebb0581ad6c864f267ea5b20f67d8b4ed5cdad820ffceb67e3967ed1ac1d8d771bb5138c9654c71d200cca00feefecad94fa1aaad2027288538556b0e1ff4dd4225dd686dc6745b725866d934389ef2c3811564e87bbfceee6f64f08f3d9f365823d9b0d4d18180459b74cc4b84768551aa687b5d6726a80725f5400d586d393f2ea02168be003c16a50aa005ded10b3a83ae667291524ffe381c059907de21805367553d3e6834fd80bcdea4cbab09c5b71e84e2e996f71d93a91050867f56b489f8f6283f67884c4bc84f8aa0d94344c6ed87b6b4ac5c7d31f2e758b11ac0231f555aa351da87ebe029ec6809c2fe4fde016e602de6d4d2f685e8fc65c0edc62247d05c8a6623c6ee6a8893ea5826a5015abb0e3c8804e83166352ee313ef14923c3cef1b29393b898fb06c91e5526809ae3a608f7efc2c844b48f79b2067aadab83ebda450973bba13748945d923a0155d4be9d002f7ea4568d2aa5a8e196b03c7ba17f674d508a46d900f4cbda8d27111d0aa60c7987070e0af1a6879c4313dad9677329534748a89009e8010f4f5585e25e7065e284aac226d91fb1ce44ca6a25f71f6fb03e617acd455973311a40ff0ef9751c975489d1b5ca7921e05412af003ea8b43924b31a94f64631f1e300e1d4043f778782b2eb806e5dc582f1f5875304d707dd3a4c288357e711a4312541092229fb7f00a0c5094262c21251bd4f9cba0709768e81d127ed20317632e3a55022fd0c51ba2633e52f56f735e5b96de667e2adc0805ac116c83911addae408e8a70bc97adcd68b986365937ae27708d4c65174bc8519a295cfb13a5315af0d394246f1312dd3a55ef287ffe94cf08c28289d53843641fa5b499094897672407f6a5e7eab3166932abdd061ac58bd0da3b0f4b160838786e7531f589cbda9a0bfd5adfe84b657e07091c709d120ee0e07242afd913b0e91ea00e7343b71dc28e194039a5d2431eb79fbe1869a6b18026d2afc1c9435b1c22d35253688cfd75b8db67e5d64d742621e9a1c6bcd2d291a8b6c9ecf0e0322c2267539e6dea45afd2cb05317d21d452927aa2d3324238dd0863d7e6e941103ffddbab720ce6ad2b637317e297509a7dbff86d4c72e7086a2ef0126257482e309381bd793e90429bbf8c798166bd620f084bbe2050b1aaacacb4361988f5a91d718a1a6607c5b77d3a027586cde28e9ddb75c1978c3e01ba6c612ac16264d5db04a1845ca570c7c39a043c275d3ae2543b7523b5cbbbd83a4d42b15086868444e0776485c634b0161e5a18d3383c77a3b5ffa89c7f2d40af1f88a80124a61d906a9f58d6654b58be7f999ba134d6abbe24b8af61a007e52e1277b4f6a9b04fc8d051d1d46af79881a3a6feee21b1fd2b70d3df81b93f04138523fbcc06a8dfcb4d23f8331c884289db904079ded49447819af685b648ed66a6dd28edba12f4851f602b082f4afc09081c724fd8b43f0b693328c091463bfd4b2fbbecf0ebba0942e995bb0dccf86eefba4e4e1ac987c09c61dc62ad39858ff1474d2de793902d1654f73b2ef10b2dde3635742771016dfb4b6558d4110417a54d137235d398eabaab4c59208b6a236de17d84a281afb0bde74e2de23109aadb3f2762136ee68e47b7bd5ebd15afa5d4f4175fa298eb2c7432fca65275a747abb827eb3b6321ae3c3934f66a6d1f6bc8dad1a57aed7444b377d2427e02ec52eea8609a29f716ae3f8d1cafdd570beee55f62a2a8c08402a95b0c68accd927da5084c173329e4baee263b7356d370b066bc799a893823b8083196252f979ffb9739f4138d879caededde4866840d841ac113982d247bd10c6df596814bae88339ab66d19a5dc414319c84a3cc34b2986842a868d1e2f2c9c97272093388f6674ef7467e458ff37c40bde8d6f386ef56b5f29883ceb8461ab745653dd601933ef319ae2a4bdc3a742d796ee84e5eda9d1a42f2860688c08566c1336a443516468758271177615cb54bdc82cd2f6fd91d6b7ddfb126585aceb718ea63d892ca12172008e268d3baeca16742f27044dd17885081b4020bdea6cbe864f4d425b653979819812cc86cea34db1f89a10a80605610b0e9bb847f3f5d8e3059611e9c6f700a85ece7d444ad5a7a4f9a55d6c9224fb6fd1829e7034a2ae2071e12f15489fff410c5558417917e579e9151fbc01a6f072205075853b4f43c9211ef7d971fa4cf570f0d1d8f3a88f7ae888a770e5c1a99965c87c22a65446b853932152fb0ee7428e6cdbff4a4ebfd58d044968556690d6ff3e32755864ce401b1ad90ec81ec519b01847a1659087ef535209d6de138cfcc610ad4a7b3eaef441b670e8e566ad6c658b0189f41e7ef3b1af9b515ab93ba16a94a87293e2ef8842535fc7dc5e069886695a522a67c8145fa301361e05fbfcf906a8cd5ceef2ed8c87375a8be5cb790ef56eab870f1c0732859e12cd8964e2f773461b8b09e9d1ac6e695f624a67c6c5b7ca07464cbc8cedb75bb70f4e230ab817526feba5a9b20809d81e558454b155e642a4a492f47a2fcd7b24e79a9fcefca1bd617d4f9d7459659afe672fd54e80631595b4b594187a3822fbd049e4d91a130048841bf744fe327107aabbbb39378813a1558da1ac576eb9a103b1e7465932d6b476820a2fdc6c61e6154d7b9acafed9c09705c7ebb54c0c9f0d315a982e312819295c140bd4007f9a9067f7d7f93d3e29756f7ef6abe6d777e349669945ba8278da1f77c63ac2954d9e5c75aa0f0db1c6433f7b17121ef05d23f333e990e444057d77c3cc2a2c291c02b27be9645d52e40897325c1e9393de053faf8f924f8c1787294e2fea9da51b9724c4e3c8933a711900ea1c180173f99fa8ec55cf31c551f06fcd588ff114afebfea6efff4290c22b56a7515426c376585a2b3e96ad57ca1eaf37f45e0ffe34a19f63bdb6b39f82a5b47f1c213a9a0330669407480a76adef65c8acf4051b1aba60d0d734e8fd76c91138328c6857a21d576a3defecf14b903835d047c2b80a8910f0b64901ba7736ae87bdb70d9d72fcad3c5a1e379b643e17acb82cda0847dcad020c60234a524c986fd5b4f6131e5e7b08554df0d9b946370696c260363e0ff6a467befc8763f87d8ff6ff1740fe2d358f4fb13d985e46d346cb7f4f382ebf6477adcd2f8fc1aef3ed6fb288aa456516556626e25469c7ea9dcdb5525a3af273653d6cc444538d39e0ac9f7bd8a92020bf7c37f5a4935f1123fb066318e609b13e67e9a2408c8d34c522a3fb9ece59a1e9bf3d2f29d614bd3397a72f136f2067f035c62c3cd4eda45bdb43f287310c0565ccc8d75a139b63b2ae2f8344a41aa070374e6f838cd82d787a932633b2c44db77d082e110a86c17debd5bf7cddc924e5c1ea69456bd490e727033f60a46c5de41f48bba4f19bf416d9c0cbeeee49c765528076eea1df70ab7e5bfcfaef02de52c9e5fc3e17b888841ad09826dfe0a373a90335c90dd59d3f8a4f06b8a364861c7c1cbc95bdd68f9be42b927c3532e39976eac76fcaa55556dd4d129c91ea637a66ee0f4451d76ac915daf65b2a608de41e3ed7f2957cee84a3b9adcac3e8a77b5d98883281933608c6ad3589939f06a13d762e19381b93f304b96b88c3400ab021a6a0c1df62376b946e78268361d5a06522a2ec71b23b7d087028bee330a3fc516c5f709a01fd88f51738fa5b5ffe9ec4bae8de14af062f4ef7e71ebb283112e211dfe8c83404449487c08b7b236010785694da7da7fba19879771ab67532c596d99d7e26b371b6522dcfb169fc2d43315d56366c5e90446f9997d77b4fbc72a2e48c39abad1db130cc435002903c6adaf750d04484b98850ad64625434dcfa141800ddba738361eb2d1b3a840b09ffcf919c25ec97d96c48d6b98d5ecf45eb04c70d51e41e0589826c8d9e6b3abcbeb95c84696cb212c348c5440f38930d4fd69cb610ba840e79c15a2ac9776c0e92aa7381f344fe8dded91944dd97076d8e32d371ab8ae8ca49728c5919210004c7bec90843d20758413fb60384691bb7e35ca5d906c7f31a56a939e46c58703df95b0a6343b545ed9c26c4b91b40131edf1820a4ea0198bed69255e1f2b11b4378a04c8a2d03e398a82198b2ec5cb19c76c6f21eddcf26f6a9773881318eba3ca467b2140ab1b8b10efd304443db96a1e618ce68116e781a4bd56587a21bb836901ab5c33a570c17b75e0f4a0383a3a2ce7181f69039b0498c4c52732e37de7ed4cbbf754263dd7c4134fdfc049ded8f49f99594ca3c2bfcebf75616d42c8354eee0f9fbba01eba81a11ca7e3c5cc617e0e0c55cb9f2243c0ee9b3ed2a2628787105a865bed68ff3385460e2e661bb1fdcca2f508d954e478e262fdb7a87824a717bdf92d9f140e427abb732786ac201a74e593a9fed6238314f7aeef72cc4710aff99dfaf5017012c61c04df91468b8f6d712b03d6664afbb21a79ba85169f18dd709f298cf4a2b22b9384be7c8113dcdd5b2564a71256172bef1a7ec2f6b3ebba689503efd01b75f3d0aa029ebcd09f346cd96c5cb1b35f7efd1819b07b6e8e6d01a334c7b080f74bb9ff744cd9567bbffcc71c63a8d52d879e10bfa8846b6f0ce9c6ea089b5e83f639eb0222c2ade42ce04e108cda392377ac3b6ec2801a89198d8cc463c471fdfe6099310e3bbd1aa72f053e4a32c5e56995f90cd883054afc21320f0fdee743407a4a6a178449397e247ddd449333aa95fb9f323cb7ef3381a6be82b90748ac0456102f0a0455c05080f07836c0905b442dbf7d27860a3a9da8cf01c141147a5b72bbcaf4208cdf081eec34370a2d5b1c5bf8c2320190cf44c35ddd49ececb66bd5579e36959f5592796967998bdf92d89e68a78a38b7fc6619c8e0126bbe63f6fe5343564e5078d1900882a9b40da87dafb090bb836627349412f63902a60f922f9497274667a31f9d41bed1049e27175a3f1e325eeb9218e09e2ce2e15973e9933fa04a239e334e4160cf3de7615238e97a9d27e48c0477e34c52b0d58c164326dac12df3045e27f5cc81ef3862a5877328494b91f120e548a6137b7cc8d6b0ed57934be8da30f7977d26d4edd774cda65b026fb2ef5aaa19a65592f94208d8140a864ea393044dd532c87f0614dfdb09446442f28c8f81289ef576384ec0185f5a25e8917b9d5f7c577b51c21d8d4e08b708a26d7bc0d4686f478a7f0e3f2e32cc8afe3df503ad64979dcd4b8f83bb32d7e3e1c100663d24bd547c4460ea553fc357804b1158256712ce9f2ee1e12ecdc1742625ed0fac8fa8fe5e0587753dfc5a2460f6903a775bf53e2fb2609ade4a5c5a5777319497dd5e7bf9423555ac1ff7d06dd8e368f70c883fa4595ab9378135b918f29b3ab960c30906a886bfca58e32582bc024c25d3df7e45949231ca6d54a1932166ed92f2bae693ccab3d45d4029c47290f66cf8a587e55cb3c1abb6d728c1e2d7979de39f84b706e4ab1f81723827b2917f7a1129e7b1b6281151cb37a5d2debbdbd7af9e69f78dc016eb8408aaaf0af1c53c3df90495beccb8e2e2226f4f12768b6d1ad9657caeb5fb10f187d09e1245104578b64227088f05d41081a99bb66d26f1a2e6170f901b2ace9617f1e3763987d188a24ecdc4fbff880366e3c7c4feb2dcc4b8f8288ded041de5de502d954da42c4c96fef573f5c577b24a9cf88eced9120cb31178d480a821dcc94d39a7cf88ed53eb6b3742afcf8e9280504d2a171719cca5bca6b63830e200850510b3d435e1eecacac78fb808367f143f19c33e4d640edb05643474abe25adede8ec9e15bd7bd478b234e44fd1cfc7d2ef60ab27e038d34f33348196be30963e0257ee46c039542b50cc00887c0b7333c5f3ef1ae8c4e1e8d2ac6c4ecbd21cdb3bdd22589a23373cd7e0383ccc1d857cd15551e9da47de69fb5063c226277eda39b2829fcf1bb5bbdf7c33c4c33a1451093a45c70809cc3342397129e2ce9120ad9c774a012b080f7a8fe5bebfe36a61e5a5f75b820b73aae00e2f8f390e3e32a5f55b6914377acb2687fafd860870813f99db86eaf7460a2b4dbec180c5ae2d9e6f422972f316a79a35e2da24ee387fa5b46fae68c68c961044658ff9555532fb0119dd02fcdcd4169b8216db32e0c7dda792589944b82decd8cf5b503a9fb4189d215c23a1320aec2d69d3a1841b0ef85954a212fb496e42a7e00da7c50ec9b00f89e8eb57c30e4e294ee9311756d48057620d2711015a7bb1fa488882749ee50341d69aa9ea4be2a8b511a2fb17b535e3ef4035d00af6ff98670dbdcaedec8d5950c3d31e0f13e53286b4c0a1be72efca499917d893af0320f80b64a26fb4982096f29f0a4b5817be5e4cabbec8464ea19414d4d8e10673ea29af62cd5863e435d7ecd0217aea9d8ad65a546ecb9ed2e286f6b957104090d4fd30d2ce91037c2928e43e83cf55817fe4dca49d3f707e84e1bbfa5d35caf09f338ae11f405f2de66f2d6391ff464648b2ae48156d499c1b6c569ddc5973f45fa85a880b6883f5668819c23f620ed1459152942d88e0ca2bb1ff9aefefb5e4382c55f9cd42290f33d819d8a55513505ae9b75e90aa70e0861004193df1bfd0e71c8ead251e9b63234b7e00ba66ec668492e4398ddb3eef07c14fc2b17e3fb66edd788695ac6dad7259fb69af4361a502716886cdc1e809dd35ba244ca4781afcd92200e3e5faf8d81ddf85c7f0983681bfacb7575a91d1e3192944921a65fb6534b4c788c8424ff5aa298c1d7ec0560b090b8e0a37e4429bb820751f6d87e4e4d62c48db110c53facc6f15ea19af9d8d02bd212c729682291da619d8acaea6e02476981a0abab9c228725a04ec1357e9684c9c6fba08211b28975ba3b49ecece925ba51c121d4fcd4667e0fce9b5895cce65b7c6f6497c7ae9b51544c3143230e6e6a2061f0e2bbd9f1c6c1a07435463c74de9ab73e83ffcde061be77cf80f3d6cd7af571848b8449ecdb345d28ab1380a6ca67703f68b3e36492f4bd3b25b2270e9f07079e26530cd1285b1dce6488e29c0d7d223f0b530a5f7eeed01fbdb08ead227b8c280e181207641a1b83fd9a41e6d259345e30659f21d21ea7cfce6746510b86662f0e5d3dd54dcdb8b4a95f3df19909f5f9400079a68ca88ad0cfb5763836c99d13b1538ce5c8b5812e860be83bc5fffedd04f33667132e332c397c07624e1fb7270b6ac9e0686a1076831dcc7825231a197f02e8008b9e9db4ed14a4d49972d727eba4c020aaf4ffb5d86e39f9c4270936b1f396a34309f8f4ee17ff066002d2740bb14e113ebaf8f4eacc4a66f4b87c966792e76dc4a9869cbfe08d7bccb17ff2efd50c8fd0c5b9e99cd400e3f2f9d32cae4b631190cafb91d50538c81e69e3e9c687419bd98331617d7907f65fea2344dc65cd62091bab454d6b1d8d0509fcc24e227537c76f736f3248e763ce74c8318e5e93f505d132e50fe3347b0a2fde584801c4dcf61c50a58f5d50540f429bf21a02949137006b6000c114d9c5a9c2b92787d7f75876f507a228903dafa91633ba8e6928d83d1bb24ec1e48665fce512aad82cf0d2427789e145eb124219aa53be0799f0aa10c0c0c90615ef8a9b584dfd0cef1a27b675f5ec8ffde2bed72eace0082385db89448afb953f19bed96be56a901ab976770fdaaf4567dbbab0e8fa4cb2284f1b0b085e1d8ca0b2aecc0bc6840f9076850e1e544e584415401a8fd461c8e6a511913322663834d08e38fa3c983ab75534e8a6e99666fc0e887c410b1e7403fdbbe3f5633867e1f75dab1c1b6ab676a17af350026142f3b4244ef0c1506ba24e529a734d627ff2f8ef654840f23c6ac9e30d720c43b65b291d1f2d75fbab45eb3e29d30253ab5cf4caf29ad8c31b7ff8412e50776fbd3130ee2a4de944636e9a1a0c1108317136399efe97afd03908d1b9991f0b083f0371b33b1f4078112abc5384e111dfd34043736e016422040a50b867b9f893d1e40dd7910aca49c9764092a005f673d9d175b93262b95c4aeefe57673c13a29899ad24aedc9a989bb0dddff2ddb579aca87de2926ff755453d446d110fcf93c160b26def94017c414f77037ccb76b35f59de63f704c5213e5743850b51c7a03334cbeb6e18b862ab6748b31ad51eba7d2470d8ad076dd7fbce66f223355c5d8ba5f554a38771fddfffb38e23dcdc2312e4a3d4eda5a414911ae1da61184f9b658367562272549a2fda34661c57b24c143b1515cb6f9fff55387e639332ab6a8d1b14fa4fb9072c2e0e9939de20b8cddeb4d8b0b9c5f1b01a26fdb12ab5bd21f42aac37fc05c76d461d5dacfc50e835b430ea2376952b1afedb97374f3ce867354c61354b3eba4f8582950a1cdcf818f7557d76ca81b25088569bca0c28196a96a024dd281cb287b3fa112b9c726c132812af37a9e88068c9033222e7d32b4ef7fde204faf4837929e9a83444f5c04edb97cf1f861622bec0a5d69450df1d2d0033c416261f7e0f8209a6bc7b9a03984d772dfe179a573aea93d43371f1bd8fb266204d6a74c1fe9708a2bcb21c6cb1b585d502a9529e77025b380dd5348b8208220879b95841f09dbfe46c573e0934d4dca3561370d25ed2b98457e5cb914a69060deb073826f5b397208802886862a2feb5e76bf7dec2a5c0d3211b2b48023a756c7b9a5078ad118635d857631dede7665a6dbf98e0af200954c36bd631e26ec5c3b3611a466cc53a3320b306ec7881a858491d685627449e9406762fbc14c30935476acfab5b30a8da06d02d91a365c89c8494b51054c43a5b8a1fff916934df6f0c33504d56aa28ecb7d21162655684362293eeb3df7aa1d9f7ff44ce8ea55075309872cf794bcff4e59e45cfb9807dce9389760b609fbdd55717efeb5c6dc5a9ce4710afe68eb1036c9c919e8892df72e24d7deed03f3d3711d5b1d5a2d2a166cd448d0ee078d40f13cd8cbc48c324d86d9582582fae0e8dfbf2d07ba0006f15b3bc09d576022404f05c0eba94306c461675babafc49db1ff73cf828b5746c2111e5faee3f6ca030984eda2db51be8b128bfc8c022c6abd3ba568a7dcdbf00af3c166e707270c0b7ca427e9bed6e7d644733dc3c28a24dbb0161f0513e739cbde5cd8a25d5112039d7c8f9a9aa936bc07ec913290a4b2e071f98450abe55909af1c701ac18e55710024e00e3e02d8c338ce095cc90c270d8506547a240c26a5e57e56269ecc79b98bd6e1f4c8891ddf132b7503286a2d906db2de2a08f58806301af979677a3a43bf98d3f70dff9cf0886bca7210f840f2ec6208fa0b61b07dc06442f8c34ead8172e7e0441f6b109b85a37560dd5fd2f0c006b02e7c7cd3cb4f9b2c438ba4795657db78401e0f51e9de6407628bd5cc9c25d73b5837d2dee1a1da916a0014fe31e12bdd6adcff2142f6c6c721755aefcbbe4e52b8064ba9d41a377d827a5ef50c29adbb665b520fdd9193827774e2f7f039529fe069426229d07396434a0cfd1e603fee673db3d95b4344cf41b2fa916d176608eb9bcf5f0011a815e751085e81f6ea1ac4eb60297452b7bcf384d03636996422e6c23d590e12d2f38c8eff720c9baf6118c829544566202c662d008fa6f6321bd0aefd210c73b34976fb0492842f0dff233c52b6bedbbd2c39021090ced6368b0f2be4e9583c9eb6f5945aeebfa89dc121086c5bfe1e8014e29cb54a9378c0ced7453abaf7b18bcd0689e385c8f8b07b35685d5201cbe33144a10f610195eb030be82081f4f0ee70ab6604ba55dcfb3e36a05790cc7181552a8dab9ac182b4dc0526a9c69a6ff07c1956f27cf71f692a3895e4081ac2bb2a41ca6e2412b78ac5b46fc18613970627e0c125fa359f59f0ae4ed908ffbe7e2a89a67bc50e4c88cf32f7accd8c8c3e52a636cff421a34ffab2cc5b1b98c4f5fbf7f50d7e0a8a7ee2fc4aa25d1aec0993ea73a65120d14b336157d83dab22c1e0b78ad3ecc5ce38fe2740468d0b1697a6b1bfc2d2ff08251fed1635861f20b93c108d1c742909b1ec3df1685286aff08a9ca5d516cdfd66dcb3bba9422680d13f96dd9a79a0731a4248a06c57fc546cb0376b3d992905d0e1ec6fd3b353c5c0aba68fc6f256f2dbc58b9e68c5825e9be1e597fc53e195773dde35b3426679ed5ab26c93a9a3e3f9f63327644a5abcb87f47d5e5fadeecda5bc9c26349a87442979c9f4e7beb2e20c24f7f0e320f99a5319903b54e5cebb1bd34f376ada491bc799f3a88ff0fe60e7d15ffaaf1d4cc4423b5fd27c06c75967331beae730881d22cf4d8bfefcc783d300a945d627db11aa5d803ff35ba6dc639d512af6bc87170557cfec09626a29fa6c5832d19910c2fcb34ecb7b9e6c8ea3a2d8f5d6352fc5f73e07d8898f6e40b09f08e3cd33c49308ecdce35a3118c1a026bd25285350a4a592b43eec55aa9dbd20d3a3a79ceb773af4d773b2c19f3d4c5b7dc29c123238989c99369ec4c5ca00c8b2bb071aece5425917c7727fb163342c2c85ce53251dc1cf408cbc481013d5ec9204bdf916e6de38d30975274ee6c30f65fc1f3ab7de8461514850cb13841c0ad50f17dfc22619fbb235b6d6e06d0dcde95159279f99c58f1b403a7495df21cb08f827781508df101da622a190e63893204b18258c6afc4081e0f423361746a9a4b6b373a1b3af457a65674c18552c1c13a26d1dde5530ca31cb35cd30ade79ea5164b8f7de7572059dab85c1ae58318fe9645641c4d9506f9831a39f875a8421503aa16f986f7c23617c89e7a77633d34d605a742e0fcd83bdfbfac809f10479eecd07ee27069d0a598e93eaeca68bfa830857a892f08380737dacd57e6913d129b92a371af8a10964bd465146e5f971e850d639e359729cab7569da8a7c656802d8474c72f5439ee56a482388f543e6a52159ef956be24120490a6a4d73e66fa5c2ebe0ca27b2f96b219cf9861918771a3c0cadb211e4c7cfc1aea443c8db51f2c2fa6ed49c3d1ddaa7a90f0f119aa0b00c4eb1e25c09e4d62dbf0fbb6d1f0451b7a3f7c6985e459870148a991d4b03ced09cd7598b40c0abfe275d351e9802cb202f4d4c2a85bc9dd1ce087d76f25b09076a4d5fbf9b55dc462784d1e50638a73f2fd2ac3f91dd77dca9cf0cb438b6fdeeda6787f01264d98f948f475c425004a291f00f671ccc7dcc43df2bae91976d0e3aad710db52c69662f791fa11047eb55ab8bb12b3d30a24cc6b167251f1c912b7113e3557290e78d7b4ee0d1991be1a759e1f43aaf3b8193fd022b46e849ccd4f222126b37dd06b97501d8ab9e3ff8cfbfca1ee18df54d4ebd739ae7129b2984b8731d39bca8a9aec9015f6519827b43f352120fee5f2da76513d5dcda8be44948fd7fc6164a2eb573fbb5ca27fd7a02fd3132d782c2d4c7402ae356db1db3747a7ac7c5272691a6c7011c5018dbf34e1cf3c3a4a7e94328a179964aa9e28364d500850549dfed65f3cc4ad64b763335c8e20c2f1e292268907bad360f89cb43c476c98103081ffb20ee4473072e9571f3aa32a91b771158fb10d38636b913005399c6504c1b9c049b960f3fb485d175c7054d154b45c16eb745df1d4aecc942d6f58c742a070ec3796bd0de2680b97f64f95b89f03b64bf94dd6e919a575b7f11c314c4ce4bd590ff8e714aa5fa243a65e7e1a944e996269b3e6c325c1a726c576646356e46e6b6c5d97f30085506dc6c37e610011e702f13d867af91aa8038bf0dbb72f53635600786ab576b18ea07c7e3332b42c677b5ebb7e610713d031a726ce37f14f0344f9689f3a4151d02bca72f8f1a08a28f3646476a63072e691fe65dfe5f0c6f19a4a672aa71c56fb5f816e5f3fbca0dddf4e1146d09cd4dc38dbbd7d37cc8aca312a5aa58f64a49c26ae05362712cd573770ac1d4ef054c2b7c1b3b61f178ac34eb050bfbd5728eb9c66a5f42ec94fbd18a0e869708674f5787b954026a528d1fab41d52e1801552c44c461d6a0f8ddd7ece2b2d22aca5fe884542bbc5fba6795619547bdfebf90c40b28d165a0c375cf28182a87e710436d1dade89f083546cb93e2cd9bf6101bc4c65d87d01d8312c798375c06a2b98ccc0ee54fcff9338effd1d8450b100a094517599c6f4e4c2b412d73ef76b30a745f2028f123d214995d98bf689e66e3b7f1bbf9f57ce58cd89fbe04df8dbdd8e2b64dd4e72e5b02c7122f721937bb17d88e5c092c33f045e3cb86818a11431e290d73913f57c575912e45c92f4614d92a1ba29e4cb5552e65bf15304a87251b83e2f1f466b6a05d7bad6309dcb217ed360a3dd8b6305cdd51a71c5c123a8b2bd902401f61d1a5487101bc40e158a9178530abd769c79308b35f274b08193b20d9131db2058f86ccb1eb3b2efb7ecfb8e3f2a3fd45da15a308ac0ae95a13acbccaa169f8edb62899114a2b56e5168a2c8afb50ae9e3fbd2747576d7eba930e38c2a2857e9eeb97866e42c1b66b4afb340d18323f483c8f7e8229a129bb4c06c8f12d2bc45a0b6d86ee45986d82b0560d981cff9b426135d3c67190b25286a76a5fb0f83ae1e189162b6fba7617ebe4a8917fe00532283ed83ff3429928346d299a0ec5350541dc65e4d95aadf570704a0afe02e5bd8ea8f9171568d198bb5681c96411e53a7680a914eed87f5fd595c982c170c4bbd7e9c58ae8103f3f3dd5723494c0219727733d38d4f6d344629a0a4beece3ac06b944551775a76da8fcb869aa7e80b600bb8e4c4cf34ee1d893891af426610ce7aebb752e22498bbc92bae57185281827fc80813d076327815f43972531271f7648c94bf3e06ca3c7d467ea9cbcc05baacc40d51f01074aff2f617521cbbd22f642fffa6b9590a0a67baeadf6af0a2353191d9557a7dd9cff4f70ca9db4e34f74ae985f3b2df076c0c8d5c993d6e1bf294d46470387a5e30c6b49ccefc4ed55fcc3a53a874bb87d9619ab0f96bc313b0f753dc74d034b81bff088bc0fe59b36bc2d69a92220504f2522777bc772bd9ac41301d5f47360eb2c3f3b31d02edf641f6855de62f6808064e1abfa2b66baa32a485ebe3de730f979c7e87ef0f016a39253d666cf6fa297593f7e2a759a32ec25d099dcbfe2dcf8b53a3a59f71b9efd1e760bc00799f1323dd074681279cbdcd43400b07ae5b6c577a3e0e21dbc43aad35caac6625b6484f95176d466ab30dd01109a83d5abfaf60727f955a287323b550173173d5c10166815aeab7b378788071f42ea1be49291ffdaf87c4240ed90a016973e44657f4b4cb08b19abd7baa3802ff5d24767eff5d704cb7727b381d8f5dcdf149e71d6566ddd61361feb563c4d3346287346d21c3f347bb965e492b2d069ff7ee4651f2e24f7fd7854f419832b6f3e9ec5e18f4d4d4342c3869d4b37f5d51dbe6e2a3a78f402c2644a93c73b662cc133b04fb23040082f4aeb164ea2d00c6c31d25db882ae3c545f56f07639dd9e2497b2941be7a01f5232ad60f9b48bf75ae78bcd3990d53d7565a5651351904d5b061a128d05315f85feab5e81298c7c4dba9c0dce8d49b039b577219e85360e8bf965a6e6e5374786870522a998cb5c5e0a571c5fa5105b0e36174806417ec1848a617629eac10c957edd166830308bd2283bbbacf87ed7f97ad61103ac96752ea4d8cd6554754c9cb9a538f35648ce03d79cb6aee1b05fc159e40b4870aa688784b8e5e06047c8fe041cd6d2c9a513f3aff4fd9a4783346dfecfaf8e53f6a6cbfdd3bc80aa5eb903951da3b07d9434ea40834aa497a4e7da1b1cef88062e7e348403a9f8885cbfad1e4a7d1521bcc32929ecba74362edd5460228d485cf8dde848a7a1e02e5ea6b872d912488a261412c409e8572dec8cd783750aa6a249ca6489d3622eab38468c6e6a055ccd3d647c794bca203b979eddeeb2ac6d3fe4a4c3365ace53f76cdbf4a9a42a4c2afdbf0f89b8948501203c5d74c4104b0caf5ac85e2705365fea2db1224cadb2be2364c07a5139a767c629d09a0d3174fc1f5a3071fdb967963f26113307baa716d07c95d59e8bfec9c95fdc90d11b1f19cfccdda74f7ff2c364883c5cfd7f6e72a9e5b6ecb1d0bb7f3eb17be24337eef33aa70ce19edb13edb71d4bc92fcb0959d8415f79cd3f752d8100ef957a8a7ff3c32f60443fb880151b6efc972c1a27cc6f345c5463dd1de2024cc2cab157d3d4676c852e08d3f032d2d6606c27fb81a3241c4a7723f834271fcc8fa635a858c062ebd511208e3f84e9733fbf508be4ab596df7a5b0636d4a9e6a0fbd84439a9780af4202d7940a209f586e5cad4b63f2daa35064404a0f6417e8ddb5c632cab935245d9ef7fb7d41a049256e1fe4dd91cecf0456a47c8e423d2a6bdeb8e14224b6a46650387406f16a67af06b01b56ddb3de7fbc2349ec192164fb5c358a7e9af3aa9e7d1f2db2f1d464ba328c2ca367a744de5dd94ced81c6c8bf24d0a7fe6435f9c808246fb66868da5f4c79f5e9bd4e6e4e62a673f3808ebfced6c2e1e4010f13103e21c7f50a5255f253ab3c55b0d1907774af5e7e679d2ece54f689a2c64577ef6b5f036ce35158bafb92528c30ebee6c4e4741262d3c372a72426efec2fa297ff9f83f6e201abb528e04976e80ed4137e455be155ec261b246357016231b81175db61850dd3589c9633adb3dabad1ecea105d865c5a100e356ab1c4db7ed169de6c35f42fb62fc0064adcb506e3e01555973cd96304cbd20d8be6867405f5da8bda1d5a1cee25ba3186f09900e14467c675ad8c6c314cd2d0be9e48275942c43a2e33fdcf7f006f055fc8533046e43ebb10499c14a4c4f7c3ad99f018b1acff8b3b81b78c1156f3acc9eb54f4e66e84d6a5d322433ff36b96c2779a35fb548ac30dada247dc63100696cda7c5ce6df5efcc6c070c70b1006ed7dfdc9c66dccfa7343573c552a71e7c87b6f89e019f32c23e55b096b3f64b2eac510fb9cb36db8ef15228462f220ea130bd76b6e201955e5ac8679f5dd9ba8253624811835e761a3d8fad1e9ba2477237ce2034e3d8493b66999ce05277cdf9e8ac583fa67d2d4125df9f9e230749ae2139575c3a0f906488a4416ae14ff3451c9ee6ffcbead9be2e871f9ac1244fcebce44547363090e67df7c0bc80c94fae5fb7c9ecb6b3e233a64c2a46c683e7e62c5bb81ae34b0b65c68624540c40f75f75c6e6c072746050ea01fb63db037e549dc3a3a020f026c724c9441280c78f7da72a2297d8ca717b25f3d2aa291440746900a06f41df5936ba7da3e0f0168329a6eebb1ace2432b46f9097d461bdad210e97615e34c6cbddb3774d5f0756340511de62badb379caae22a05a40462ca4b4c2b523dfdd5393f328bc42a63c4e091368317b8934c7def70b204fe9dd0d06d58cc9a0a2f75066472acbd41f72d805f159e807769a7a75ae1925b78395bb3f0ffa0cff75a0458697ee9dcf6a60217be61664fdae1dc538e84d754e3deb405e0c20e1ccbf41f36af413539443af5fb4fe5437e7840c8369a5b91693b2aefc24cadeb5736c8a3082cf22de7d9b7a3c2cc0d43c19f341d0328df1847fe11a524deed90c59f284227dab8ff505ca0572e64d985ce2c23f2e575ac0405aedff4eb79db89f2f9123f521b97c248086e738deb6be5078f5a56161640a43595cd77d54b3ff7460d1755bdd4b472fae720bce292460d92250c0ee85af63fd591ba15c322b64989265a9958d11d7725d2388eda2b87cafa721eed21b5b275a87c4ad95d0988749b7dcceaabf68618b3c9c4b2cea2ea5d811ded4772ac9c1a8632339cb6793739e88fe68b3232f4e2ec6138c86cae370a47dada1d5d60c0f4bad27e5ae08079170b18511d252ab8ba591ba5a91375b2524ff935d83de21d854e7c1746216f8d23ddb470c50d54af566b4337f9bb17f00f5e1b17892b573576918a842d003f4469983eca06f49bca8e94081f251c8c44cb4abfdc313a1a954a4bb4240d3f6ef16cbd1f9ff7a8884f449872cad887d4cdbe655d96df92874bd4bc1e61289631134ff59a7efb0623967c8bc40fb2acb6b899e14f41c0b23550b5808b7c2f682eb1fb1e68d3847116c1301cbbb87cfbbb64bf84109691e5422f0d2c66ac731089ff9a596a36787ebc82bc44e22ec3316edf1d3a2756e73733d872d10fd39ab5d2c3bb235ce33bb5fe7e32f87007429031d4f7d69c138fb810b6ec016e7677d6e058b35057135933b21d7fc482a63ce509cb14cb63b40042e9b177155f6d9dcf7978ff2205143ffdb81d6434ff5e23e669750221780274b56ba00d2b41c56d62e6bf92333b66f14b8f6db44a23f9b909a4bd9799a14ed891fc9e239fedafe78423fe3741ddac2c76c9d9a66347042d1bc54b5a8c5ee20e5c8d1d1bbdb9d0cc1e8f3fd0f03e861c616d03d871cfdc3ffbee2e67fa305524b345f6df4eeb9b9873852f66be7a71fb144cce4175925339ea6a5d29f2481ff0a2d5dcbb0d8fc27b3c36fc90d0fbca673c6128f13e57995aaf4b173d42ab02e4fa5ae9a43503749307ca1a6063b7516ca1909c8d256ba2a4dca5166054b91545ad72e6eef071d49a0f7f5c727d3ea9b82e3de4e4dfabe7d0993c2627c6778b53e81e50f74635f085b5e73b4c5dc80fd8cd040b112222b9022b2744d9d084857faf2efddb28ba9d31d65fb37321931bd46f71ea9f9830c220067c684b3c4aa539ab40de13ecbbcc4ced4932ff6be0f63153c67fcf266b0195836059dd35f9d2f40438a667e849515c6fc21e16681293968eb4cecb295cb43b0d258dfdf325e1b926501ba7991ad998c0be89cdc18338d2a6b53328e62ce6ec580ece7b2446c826284dd5f9a965d5e3128c729f78b953908933ed095eea13b3da36621b64d9489a458cb257e43e2a9a401c6680e5dda13edc239d9d24cb4ef6f903eabcafe203f34f70b615c2047efdd84a784d94d5d2b956d8722355bcc3a34417b3a309ce182057e2cfbc84fc7bd0a670063cbd11e573d76bfbc02fe3b359288513ff605814f1007cbd9c6be23257b82b65ea74cab097f28b81f102971d32a31ca1da2954c6b0a0bde2075c20c38e2ffd0ec441052165c339b01a0d510dd2d930a2de0b2cf39b610a0ce4475bcf74e4179c96501772fc18180101139dad8a6a3134ba32ac392960ebd66ea5e8dc6aed7e47b184dd0b9b121b18ac6462f775d67e62d34bf582b71301ca6d59f1581849f17542e1b70ae48eaecac53cc57bb9ef8a12bbcf7d0e3655639a39d9923578d33963db089c2cc8e772374a2e52572166a57ea9131d0bcb1ca7f574bba577f46c8b1d88938ee037a6700800a796cda3ef852b4e18e185604d0cdc222ea8b4830251a8d77c4cf1579eaba0ee432ac4351ece364a44649cb08413d935f372211e86dab7b9e7c057719e3a2efa2ef4b91ea5d5280e1a7bed318dfb32a9a34f4b76e558780e11ef1c538193b1b3aaa7ff5e7a64594d59baa79833842171268dfe5ace1decf41765e73bb973918a9e24131f0ea97a46049bb040e3beadba9453a5c356be34e0436c5f68a7cda0f4868e2ab5e63716768a20a63f7b8b428b758d59ae8c2b9b479630200a3aea30f49b1a7a4a6d8867b022c495925b5ed7f280e7e819b98b2341cd8f483bbea531e42d821e1c5163bc3966ce7133942fae41dd4c81bb18d0ac0b7386eae5eaea94cbc2c8181fcaef425acd54f87c38371cc025a2d6bd89370460aaced9dc66bef0679bf6547d8b02c5be95fed997cd6f586762a81f0861a3baf647830cfb257cc8ad9aaaa5fe04de6aae4555c7a28694aa9b7705e35bd3030b149476d949f6b5ef03fd2c653bf0bfd50d82a73bfbd5d4574e6a8a5fb69086e2324d616b926be2b3fec7371a25bb9eba25c5f9739b8bcd6f777ea9f519c2ad22ade7026de1af3371219ef53f0a9326a7775586585b20c3b7210969916fd1deb1657682e937fff88dda2d67fbe0e5f8d9c694913f35453f41ea57a08c0386a21d56890c4a8f7c26040dd67f4e6212fd2d0ea2012d6b470d70b154c6eec86cd7f9cda3e8d33cc78b87c4cbe3023ec39a1e6f3bfa5999addaf98883e9562e6475fa0f769c85ef4f88f9655f164bec2b926951d7e3e0400f92c91b2529cc1c31c04b66374c141449a75aadf6c77c941ae4339988332eb2aa22d830747e87a2cf2351934024e0a180d4b6e7581a7893b1ae9922f59a3ba0e7dd26c2c03cacb397ee8d58112f1ee561d4aacdc2ce23a963356bc82a3fd8c94cf88190baf50fa68faf36ab37838a85765d3793576f3a7ecddd6e421a4f4428b11963c00db236b3d8d85fd83562556e2eaf9b77c34d2cc9d069dce47cbde07ed7e68c56a174c8cedeffcb96e932b7246bcf17c2beab74618432b12f1d90f56f573633f609d4bdc202551ef05de0b796a148d0863be2cf5fc152d348662df6c63d20efec63d7b66ee586daabcd0966defe933731580251fc2fbd52361ba0b7230dbe7e58c3458c2778fb7c3d8cd6958716bb3e6265d8ecb600e7bdfff9b94e2e42a513ddfbf3ef7fe74b1009d3d94ddf3dfd8856c13b9875bfd8c688f94ea3424b9ef386864418edd2051e5bb97b8b93ad8c49e95b2772a507e4f779934dce33de32722f33bd1dc45d029b11c19317e5238d2d0fd95e81ce8d7e70e005731c266fd85da75c13d08453205018fddee4f0550ba06da9431cfa6ece97a3bbedd973162ca6ef54777080c05bac54063e3bd515f0d73d50033bc279298c338d1ac57d266fe8a8def4d09aa157f4d6b5bc4dfcfc193bd0c759a59e7c51fb2894257c0da98f77ecd3308806af6646cdf025587c1cba5a25049e15f71e65730d64e7f711cc81f724c7f07cc05c18e70eae1e471dc6ec2b0e92c96d679d3c9c330bfb1155e6f155d4df29eade5250988d244e49906e5a8cff32b07d0f5368ff44950d8aa65917002d322ba615a5430b015a0f1579636cfe5c93e6b7cea13b8743ea325d2e20e4401322c1c3898b6d314d43d67def36f138826938d80fd384ae25309aa5daaeaae520e3add6de266cf2d2f16026a67d5f160475d8a8ce3da91225c69f040993d37fd9dd9d1d37cea1a5a90d1fe7007e9548260c5706b2a1d93facedfd72b145e0ba7654da4d14b1ae2077c916dd4528c62c05ac54c84b0e14d8cea39a521feeddddfb9a27e64b10244f681164f2d60f54a67872588daccaaf0c79ad55d9294d348bc578632f517d4c8c054ef72f74c9565d6786918a04175ce69d5bef8a61110dec557cd7ab074bce2fb99fbfd114a3ae4d0ca13a3daceda842466d523bf805e5925767d45c0efb71d4646967e4d5cf85d5cceacc99c106bff400a7d936150a650caf7c07c8b9b8944b7b2471f72fcd7b84cf7494aada52d582438a0cbaa5efb1913d6c003b4eb350124c3ba4d8158cbd402d274da19b2100700b9e46724c90d1dd5e7e50087a5d7e363ec5d20ad9c7b459d56dfc2912e4a2fb3b08b3c46a466ff9aea1bbe3dd9ec773e21b82019afd89cfea9853af6d0223e72140b20040036bf1e55c82f55c1220d2d3eca089cdbac330c4cfe7988034ee69d54001dfc394161165bfadca6640fc52f670a354633488257743596561dae82a7d3fa7f8d09dfa05ff332dfe1e34502c5c3cbaa3815676d5481226be06bdaa493b8e23b644302763086dde2e472b817b316d31afba980b753588628188f91c66643885b60c41c150ece5fc3255e040b16fb3f52da97db775d4a7611daf29e17c4d9db1abbd6eb5fc1383198f929ca6c183cf4034fc30dcbbad364455fb1d50ea5ab30dfc3f73fbf979e1bc0eaf280d7699c306b392c03cb8a1418b5b5eb4a19e977fe6eb85e1a31dd84b0332a4b0c3c99d87507b13e25273fcbb857a3933d8c6ad1fab87bb82b4c699d7f5cd95121ec4f2cc3bf4e1c2fa50142363031e1d944a675690dba7702050a30cbcd7849afdb1f3efefe0096796931fc19b5de05be804e5e9bff6daa4320c5bd9c23f11237b60c3d113bc28ef2eb08330b05bc7753fc0d90532cb8d07e2162d5ee4aacfbe27e73bd435616f1cc47899bf1b4222c104cf09ee022ea8b8f3f09f3173b50dfa83903da2e4686b87c9ef25adf0f94f2fd6f98568387782a236b6727615ad8b9641f99f058d541e7fea2b4f871c1d00a21876d5ae363f811625c6ec83b1679665c4beb85b51e421d5a1da1b998b98dfa8313c681e6a2d714712bf7ff741b8db3352692e271affa32202d5b697fb9202f25b07c3ef7cbd7680bdeadf9487a21d8500444e62232085fc24dc1a819365c16318a760811b02f49fdccfd3431661316231121a1a8c6690a9e6b35aa68e182d29b30d30ae5a0430136d01dd32cb586e4083a78d6c61c538613cccafcadef83cbac4f97e5a22b286f848c509499b70de9427fbd5cce43b20a4c64faf7cae214776b792fb30cde4732c9350196e7ecbbc089b5191a5abcbd525db4aa3a97c08985cf388db04300357727e346bcf145b0ff02ef631b13e8943f57e5252d068b86d496f75c6da967b6c966aa3be390ce9f5a14e549b0dd852e3184cb54bb9de73fd88039eade5a838afac2efb46791f1763f87f663c9d52c2e969c25e26c069f948c953efcbb19b17d4765383b528213b01b484b72986cf232078fe0a425f3fc6522766bc443f8db883afa86611888471cbec1979d86067ef9deb64118655dc7f92a46c6a23e59b2aa3cd35ce691f60c4fc2ff477b087964cf973489d3e7cbbe110b849fe4f244788107ccb039603b6cc8e6f9092802579e0a56a414925aec2fe615b2328c8cb4db6f8bd1f9d23cacefbd30d6a6d29f3ee52bdd5fa70f58c47a89e0faab79aaa86c57a730ad3eb0576579b4ddb102cbeed4a5332aadb85d2b1b3ce8bf9e872d208d593c054ff57e400ed03613f14bcb739c0f327daa6e743c9dfbe708fc650674197a461fb20835435be7f9bd0e7b524dccdfef652f74c3af8a48180c9d201990f03ae902bad9b0733ee1abe7d893524b3283ff248d039b2af16bde95cd73aea1668ae6057bddc375984b22b467700db17691ad6fbaa25e43352ecf26a39805252bec5bac188def0a48af96750f683d7ad060651d5c0e6f071809325795901856d83dc22c3c70687cafb2822e469902286ef1793857b6fa5324a21713656e7f8cac0a934f5576a395bb6a5550bde6e6d667f759641f306e9430d8ed76f4611597abf91ff8088f5c87e059ef5a988be54474cb8b2528fb906bd946aca774f59bac216227a5e5c6448a66b40cfca1b2e99f1ec8f64f758fc06810d9f1b941ad1db060c8b5adb6d64bd4df22ab28b667311d4ff0b03c952f6826a1b5f0f7749f3abcf4c4ccbf4020e53463660a7881b05cad064f1c42bae5b21b7aa3734840b96a9f43129f09132466e16da6b1b5dc01aebd0cd9871f002bc4290e24322de0e7c2eb7859025bc121872d5044bc0ab0389e4e036ad935aa235dfb666f9198001ea208aa9359f5ee660b6fbae8d44cd8d0d29345abe2c030d4b24e33fe0475139633c3c8b3c6403a5c61327c5fa1d662f0f0b3c3382bfb526d21386a581972a531d4a5ed3de631eb62e0d4430ab7488dcd991a227af2af28405a81f814ad5e04793162c9d9440098fb7498209a7310ec983d5511040aa64d307199fc8051cef928fae83c71584c7a1da8ff8c9b4c1e49c23eceae21eeee830c177dd2b5e304dc33519d0f7e519e87b53d368fdec8dc42f574ceeec5fc09c705571f36216fdd25f5bbd7f1714961bb3750185e34dd7a1f2d078e0ee9cda07fbefc11305f7d9960923833e784ab64a6296d3f91c763f39067a8902c3bc7c9b10adab4ba030a6a32000c8209dd094c716bdda6dc80367ee323c61494c0c7375c64cb4f388ed8757e09f05aea9dad7f8f99a963c86d87d73d020ccc33ce597324e960d10d95783b6010822710e47f68fc99fd76c7f137ab77a646d78937dab00c6b39f0b129c9c6d2f21705e29057c58bc8e2833fdcb3d16d237ed9df98daf40c9b6515118b9aaefc2a32169e5ff94408ef4a4f5beaa18b313f79abcf5286b2c0e97049c6f7ade559c24ec856afa0121c35438456a64da3cea64a50e06287ba6d02eba9ba57abe5e212b4af86b157e6a8fb582a9e220439881e8ed7ab5c3fc816cc954aaf701124c890e7add867403de2d18bdcb281bfbce7c7ae2e498682f678c5db7ed861231a6f4c5a1703bc6f60db536879704d1d971477101b04f436d834a8d25ebfa686e1396ab8d4351ebc97d78e1fac6c9aed689427d47867264a827475f839d446117a5098d43870dc509667e6add017c87fe5f5bd337d5e5f47848cee63444d53bea9ff554797a7e6472f2c75a93e06cc6d53cf6057345fb5effe95d5d8918ae0c02ed6dec01291e5acb5efaff45f9638fe8291745540a00c17fb34798120ffc1e4bcb7318119ddd35ba595676ebf92a5613b1595ac0aef78cdc8ab1a18c6732fe1aa99d2954308fd63fa279955586d37ba90a6087f507237cdb94ece21700594c18d5a87e46e34b7dc8f43370264f02888c712f63e644cc20e3741420f67c7a71940acbf353565174aebf8244f9ccd5bc2e7d84aab3b0424d37369bb7daf6ef25c205afd0060a95dbee4df9282511e455fc5e091bfa7f297c4a8b72a53a356c86f01b9069facbc56f957a1c5ed338e66380b202e55be4f937881e54c60e55a9e90f7491689fd60de55ce70af40b0b4127495cb98e6e74dabc396bf0ef9bfc0a9e9c0482c836e656c6c392f96d2f4670a25642cc036ce0181680400f21b8921a38ec28db7b26cf07fc37b8aa06c584d4d0753c1e95d80040129d8643270b52f17bfef873ebe8c2dafb26ed79830b44f07cd8c96fd08b7bf40506b4a75f2f6692c76c15fcadd0e058e3b51adbd00a4450ee2e5a876df60187ae4d0f9e1bfddbd659ba02dd90ef82f1352a34e7e93fee916c6a7951c9f9179aecc62dd28f8ff16d607bdc296e398130e8c28e64a6d00924f0edc40b507c524dbf6c54667db4e2a3feb4b3d19618d27a8c337f36a723f33d112806cfcb84154820848e06314b865ac75fb5f7349ca51f31eb8fd0c947c44915fe0f958b617f1d95e9d2eb8790b190c1c1655375708739aa5bcdbd5ad9f097d036460200120073c148482c8314b1a69b260ea6544abd38cd492dc723a78d13d683d6c32e2852b6f915774ec67fc97600285eca2bec097782ffee4e9d29fc668310f9e1fb01ca65e46428fbdfeed5afd115791bfecb28a817ae9cb75184a216ad0236fe5750dd89eccc331f656b668fd2c345e04fcd2d5f6f63fb332edc47adc7a027a8d4b8b485852815ee7aa8550be31fe2ee05c0ee6940fe3886acf1320027a8887c4be5dd27b798f44e5c9e84e6910c07f6da42e56e0922962c1c5e4e474d9b6561622638671ba1ee6209db787a8d5284e93fdbc16ac35a791acc61a14f6b73957b7aec0cc6856c44b8b4318a0343fcf66ffcac423e77209b417942234fc46fbc0dde729819d8badb945461e073887f464fe0d7df2f223a0eeff8e65d2b652e04d7da89e9ffcc97f16d8b96944dff71d47d0a43b69fb263fa2d87bd510142280964d1aec244abaad2607611a43ce8df1c7cfe056889a2089e0f5cf095871900ef1bc7930de9225e6e51ce4e5b1b357cbf9187831eadb0d17bc73258abd0033baf107de9e716d4f8bf2f0bf79a1012c82b106ea4434e14d61f10d37233358a24cf796c552ccc0baa45d21a3d58e19605da1caf2a6f6315248d147baf5850619ce71386e9319abac3722ace1b1fc231492a4879860a1e591679b93e74a8b1ef63e0006761be886b45d80f2cd01089584b017d7f521796448773adfd2b739a162a3ae3674cd07af24e91141720eb6c2f4eae1daf72033888e041b22f2885769bff96f09bf3691780c41f30518ef9451449f6ec780275a5eb24957aa3343c30df4b76836f40cb5b7d2a7b58af46041f2f1cfd287c66cdf2dd78359bd6a6ac4e9b772a8efff633497959a3e48620589cf4ed2cb9314b3f5e8f2f7f5c4152f21474b54aaf7d44f6cac159014c05fca78fb67ccb6f4077671c7415f96fcc42b6ee46d2ef002c142049268c1e5c36d04aae8ba909b45c42ecb09728816194cbfd9dcc17928de7f5d5477d1cb3ef791cf5408e3eeabaacf16f0745ce1d93d5992ff858dbf5a06aaff83b1bc842e13d4df2d28fcf590242af4822eab072d46ba1da8aeed57b0cbb0baf8e11376b9a1c8096bc5eebb9203322d19e43763660862569278113bf1383965594b46b618446533a7a3e75dc46e07c820f16da18269a8c07664cb6c7855eac5d405f9768ee8a53a2f87ee4928bbf1fff0f6b084504670369686d11775a1087cf2fa9e8217a4374143c950df0d8687de6efca10a2ca961092d04b1c96dad6d36d45b23cf75dad9944eef2bbf9a3b84950c97d8a2eb30ad549dc123606c3dcda47f26f64e98cc0996f925dd1278e988196b36348ebfae592e7d2c1a97da710057e4f05cc27020b8d0027b6b35f229ad78fcfd6bbcb9c332073a288f9fdd1877b0957d68491c8024e9327e67d219d85bd3afaa39a36ab26e567bb2e9e9d20158f68bac6286cbdb1a2fd5f063f19a8f471d6e9183048219dd98a0a3ca1c8bc91a7dc72879a3c4bb4bb1b24383426d1794ea59980dcc6075a21757b239b77e2dab299956e7f3409a75908753a9961b7a608deda392b487a330097b568ac28726453ed935981d2e1ef0d6fbe10790fe4f3206bdf2151bb0f01b2c721ec08f351f8af990dd24bb3bc97b005575e55cf841e6655a996d35c259265a3f6142fb10276f9e8fd5a81bc57895c7692037108fcdde9a6e585763fcbd560ac5ad56b3486371305c7fd8efb1295d98534bfdb947c06ce0b77ad09a30a54ee65a40d4bac15b0216443b7d29362c420de9f2b14f52db7bc428f66ab082e2332c599fd1b69a638dc96e4ce4f02315688227dc12c7a00a641ce666ed540a2d9a7eb9035e2e608d326876a6cd0bce8223df0ed42af9de1d60eb2a79260c806b729e5c4805f6ee8794ba98e4d273e049ddb1cbe32455aea267d9621bfe0241c66c8c12e3312ed20eb878f684423fb58a7097d725655abb47589402eaab69ef63dc5037c6f699090ef8625229e46c925abeb71ca07f273b88f736bd7d00f37cc6ec1333a28d2e02476ebab8ab4c726425513e512b67f7312b223552a27335da86de9433be0aa2b7d3ecc0cdbf7b3325cc1d1d3a3e0df4615e29834a6d26d9567ac72b2325ed81cd9157e24d0060017e54be6a20d77409af38b71d98ae4d7e71a4d727295f9cbe44d339fd750cb7fffe2bd096f43c2706ed40a784026a7986144c8ece26fdd54a437d302dceda65b4497bca59c43b602c55bcb1918fa13623c2b6f91f1d03abe7baba5baee5b9d3e0ed570107fa5f167e42fdf06bbd366f0d1706f1818437dcfd4a7cdb84be01be7c52ac87abe87c3802a7e582ee786ce42c9b57aaa6ab5393d9a4b2c716e691a86e593e43e5efd95894519efff03dcfbb95e70e37bf5cd4178349ad2fd7f088c615d37a22602116c9d6e546278ac78e40ebcb6369a18eb83ac9194515d93c5e13a900e9b9ddf06c627ee1591922308ec640f97f7e773e43248d4cf0384a46f0b7bc7647ae9f041959b9b44afe16018deab3d5b0651611bf99268801c71fcfde8a576b1acc237c63b3bf14dd1b73f724db2ddcd6850e874509dc98618b20293a07461d5aef341858a00036f55bee62fce7296a64a9f88e103d31fb0a4426464d41ccd1ee6195d26b6f3cc6ecf39281cf6d5a674665cdaec75d30d213ddf20f5c50dea0672715ef37e4b2272c2046967f022ec6ecc6689fcb5bc4e83e3f80b0fe3bf5931d0605b5aa6867f6a0e9eedad2e3fba6bc7e3c88757fd0f0b7e80400a89fdc3f10de7676ae5c237589489e19b266a71a956f0864f0813474c93dfafa9df2f36fe09ae58b6ea16a8269e1958db615dbda93f719640e1200b0eccaa5b97f45530e83dc39db79ad1644c29e6b5c4d5764ece093719304a25b7026cc9b9463186f18ab303ffb2bd614a76851005d33206d0e1be9939bfaa517a023dc2ce35c49dcff282b49b728e1055fed69069f6834d8dbe69731d427dd0c21de7644b2fc82c04a6667fbe913dc2285c47199f0fb5d3b5f2f802bf53df0a7c339b7cb79b922acd71ad627b9ded86a4962b37ac67d00dd261811d04d882d6075ddef28fbd620c9c399ede0633cf5507a6972a5ee8c68ba0d75859e8254051d0815d54e5ac9e0af6198b33ff4464be77da5a5b03b6c12741c64fba4eb2d7e9c955a2679d454bb401deb801f8cba3ab85dab1ca8a0b97202adf7a5b900e4e5e9cf9b86ea16400c2b0325252cd7f5a65d6316979740f73a7c3177279a22e9e362856fb1c890d1bc7ffce35c969a1c6d8d7d0f0294eacf84c7fbaffa7fc5d62c032f82a5671e559152804e12b5ae9a11afa97198b2deb83bacb724d1aa5a541c27435f63ece4228df67f262bb44f0b19c7a37c6627c652931321ffc1a0605f0a86bb05ebb3cb971d9f1cee142e8c5147f8ec8b8c7a0a162fa463d4087a6642cc597f93651e4dc9a093d6cf7264b9ff8c7aed71704566cd13802259c75169f97997cd24cf05d9665d9cd16af585d14bee0edf3eb51ffd3d8e33308837297055e139563edeef6121c7d6ca84d209e82a05277939754e5efb2db91afb8055de0e8d22120cc84aa2aca6a33c6d5b75b1052ed9903bd28afec793958382ae336e2dd6bd48859be92ad5af54f83cb3803d3be2ef99e09a90d4929d9ee19b2273c5602563154c8a0cf7bb56a6b666ab752949857170fbe136179c39a1602dabbe92cfffed492de5d778a472a3c1fd44a11239e03e6cb699746501a7090d57b627b89319cf21e15005e1964bec423677240e4cf5fa813dc6690b94cd314e66aed492188d80d143ea265bfa5e1f80d2e47a4287626a99b3716af4753ba26c4f4cfac69324d6d376eb4b8b113b8330fd94789d84acf20ba0ff694742db5d24e38f8acbf5bd2d33365665d55a8ed57973a71f3917f44491b3963d859a74c9e8c268b051a318d1e247fa4bffc36641f537371f77e36d1363713c7ab9780509fe6037ad912d4183c50acf91a5979fdef551ad7fb24888ce4ff3e6117c821101abc6a16d25904ce552606ad9099a39ec6fa3c9c0abdf8fa1b200ed37bd13f7986f326d71c692293b3977557d97b4bdf8615216f513bf2662e731f8bc3ca502325abf28963e06c0549975b1301e59f58b0c7fbc8751df3f5cc186e6dcfc9081cbea644264f5d93f3cff5ac2fc520f85c5a1c1ac60ffb09f7805d66d93b45bc61fd0e8b179328ad7ac0d8a3695a4c52d5e9403c0bea3321bf02bcb453ef5f89f2a6ed151548cc132e0555ebf9cee7a5bd82cd62ec5f5bd27a99ca51313fdb5c725996a366a826c4a03152aae9e09707380a978a55a259e13647e931ae27f3b2328d90ddc94aa4b4a63f75da0cf9fe302ba323571426f3f966fe1384b0591235d481ef1a80eca312e4f8de11e2016de29d83c4c63eefe360946471f98607701ad225daf20a46380a1b8a590dcf6242f9fcda6252ab4774b1511fcd2d70852b668ea339e3b31084f95c77cf7e127d1b06f89d499f2e6da1d533c71a30e321cca3a30361efcbf1fd5ff3f415dbccee08aba26a0152e7737628503b90bfce60f18d2033e2d7b666d0b80b99e7b3af3a4cca5cf9a9dc2c837ed7fb04a8296d57e5817d6477e2a49288ae27be4dc7a0e9b9981c910f31d8f38e9123a7851f94434123fc2d97c4f1f3f2ed7105dc1a7d854631f42cbb45fc6a2fd3423ab4027c22c1961d367ed6839e5d915b29cdd797babbe86ebc3e984ddbdb40f2880b897173f3447a22a0937ab681b7e97f3ea52a2bebc4ac4f5888bd1cac88c0bc4664e4f8597d8a366b8e048c61fe6f75dfc0ccb77dbc589bc96df00cb465e681c8b630eea9f879ff5ceb67d36647ac4a801576a5a497522c3fac0f0bc74011b28f4178f411e3bb9a7ee9679d175276c4dd63da2bd46f31b818e541d0fdfb7d3b5af38d5132fd1bc6ee1a0a6a48bdb92fc3dee902476d9df261dd06c7cb246f9bd7c5b93fee4a3e5ce5ea80cdf82d62e2044ef714bd29c141ef0b2d9ac1ca640b9b2353e54731819f28f3baf884f01f63262cc94656944e6a1d2e226efd90d271378620139dd30be9d104f4df16d973beed3491a586af9fee4363553f38a3f2654a5b739cb66a772c767ee5f6c714f74876b8192e6db29058b7465d68fbffc4c3b9d14299da004747a2a33f7092d379e998cde589371a8383fb97a93d9d56c2b9a905057709422618ef2ee322d8b8d435c290adfbcc9b4cdcabe36f52a62739fc14a59732d476b3694abea80f8856c900b000fdc258cf3b8099efe15158285d77dea15fc2e977ff65921c0135577fd7d80e66ddae83b8dc3efca7fdc4f2b9314dcd9b6c15e3ea9c4c211229584a6ceab1d951e50ef0d56c4bce5fde4dc96f7a53069679523045d129541faa3727fdaa5457b0870c884bc7dfa250ebbdf95f0cbb619ff1ad535ee86db22ffd856afeb25f7bc95e0d4a882df623cfb2290ea408ddd13312ac4ef47b8c0343224770e34f933ea390b5c0e24e0808ac1089ffa78f9a5dc87c13f279e5015aa62ea8f6fee7c448a22e26ac3c04f5e56534b8a3afe7c3a2dfbabb0a76bcfd26e1e76e3b4d3a5d12f14a2c432ec4855e3ac2b6e45e6eb0024379a8de384f3e3f07e28a5e27e1ab02f2fd9ffedf0d84ac5b9f1e64151fa7da41d1bc0c9c59d9279fbca36b4f5afda902f0257427a0dd9361256414476220e49b5ad4b453bb9e4b15e92b1482b8b754c62e1f670799d882f58044c2030d06a99008c3d17efc2a238c60111f0b8df6e1eb86aca8e023aeabfb545f56e30a6533a33a8d2aabfc69b93241abb153297373682558c6087cd38ee27f189d74909e2bcce37297de03a73354c4b1190068914ae0fe96578d16e0427e206d71ce4b5a684e45a98cd89ceebb950bef3f5ccda42fc22e2ab48bda65384519ef190eb3571ac54326e1bcd2fa87790b39a505cde986e4b41c240aaa9eada52491e6ea28339d38aa74de1becf449696126ba3c4a64b3d7bf30329679588af4a58e5e4c7d1890c7c01a309f5f773e7ea05a96e18599a082992b6415d7f8348b11edb94be2ec02e0fff2c69eb371adb3cd815ece0f452d60a779e4202b1044b412d45a37a98b99bbd65da6571cf6434bd7325da9875571871ec67c7b1a9507bf732ba4e385de0167cc7b640622f9e0efdf8e9975575fb08ad2e51c63bbde8f88d8ee31d6a3396c234bddfa7c57882af38bfcb7e6c2c531ad2cc26d8c2e257b6758f813aef75aba18278a80420c5344434fbd376b7e8bda08bfb29d2fd4f66cffe51b132953721e4e6920d0b1fcc3ed10cbbc47738de5272c4ed5661ca24006b7d4570489bd87d5c02e11229ea3180e5ff17fbc96ced5a4b53a7d14d2e2fa00197425d16d7fe3eeb0de4eb5f611c32d937af64fcf45fd902e9c56da8a94198c5667569d92a7b80b2c6f50aaf897b8ae7dd5f3e32b3776ad80f8882d5e55f4eb9859545c6849a42fe0293f5b1b012e88fc022fa1894a355fda122439bc0fb6ac6fdc9cb92dac4d02ef86da3120f261be9bd5e587ccc714a65a740476165e36b19fc8b555aa85ca8a01960bbb03cf301bc2b3bd0ce0d78bec97d2dfbdf96abe7131ea0720d968d33f7311b62d6005670a1010f967c51c6d18e4d0ba2c9beb5d9118072967c3a3276ebc495b3fe8d0df8a7837268e9d614dd5818d705896d9d11613df6fd7d0d334c64a25c8a035a69a5b8ef74edd02a09f25c29499869d9743001fcfe5e625d216cf9f2dad25f425eee410b102cdb83a6a91149d84c7e68b51f5337b9a27731ae0b83d625fbd56f0e3eea41c82519ca4161d65f80d4c7c49153abd7e0f03273b56c07701f8ce3af0ee6f6f20b9aca4e597d0661c45374f87937fb0568f193c0cc1e371c7e826f1e221b6c8194f861cd50af71ef3c0a6631a15883552389cedf97ab12571198a90e32d00898322afb37154c2a176dd4b8fa63fe6d1d92ccaeda993f7c5f086a3ee4d3c02bc95ab8688d6c8d36d1fa149244c44cf23d2c98882263e2192d63532a6928efa9d4c11acc4456aee31c958b97a79b0e60a5cd58f5943f9d2ee44aa01a73bb02d3a3431c98bc60d4a7960a40db227d7c41a3582a8794ce151cf12760f2604adbf2887026e8d8b04afdf5c655d5cb007eccb3e694cd081a3024ca2a1849f93f6e390329d6143b23156345fc877d0c1c81e01261ed518abd921cd6d622730c79292477ad80bf631e488541437381733f88be9ebfb436887fa87bad530db2d0bd8a1ffb1d3b8c49b3fb2ecaa856c467201ea2d50f8c7c17ea557eb1ebb7e76a5764c4d8b236b64d419d4893b3c7991f873d9f7fda90ffc1124e1b5e18a31c7e62e6b7b1903a0ef6e787dd8de594127e074fc2e9a4387f85f9b365b7ec4c51ea47bc393aaa5d5eb7408b43f50e342e6a891ba78b873bb4dce56ee0d1b9b8c818c3b0bf5ddda6bdc9fd49bb09829e36a37107de60b0e79dd45c509640cd7d08ab3e1d3e628bae70a2288b923aa523bb3f73dddd3b1fdf4ad3f7c699a5cb744ca25acd02109d93e1ded13af74ff3a9217aa2ab81ca2ae48328c1f227570529b0d80c40d34ba2e59e77379ec7f5a10d7bec48e2513b9945f0840d9d755c4f15f93a837702dc91b026904b286b7cc567b3047ac10a03900de46ee8613ce05056d7941a21c4ffd81a7e351107cbbd52b26694777e69e033548e1b0ff6862a76860c44b90b2eea4e844bc8c5ade68e77284345fdde6d611ccd59807600fd6e36e2a9e70e504dca67396e3a98b16e03f5d2ecff3eccc26e2492d5fedd6cfc32c0fa6c7b70af4d53407b9718f4602bd9cf9edbfc191a5bb039a06f55543a28f2c3300e15c44ef535c3cbcde4ccbb84df473e6402fbf0a01dc0da4c2a1489a928adda64a2be2b8980f4afaf09e4526af933e270c0201a17f1b1691456a2ad581e90b250bbae9ea230b2476161b72f608b51a71c94f100a1c8e8e134c71f3097e49464fa1aa8264a7319a818a4d1e44c1a73acc6fef82e856256c377861e38ae07621b019d6ecfafef2be7142263387e64c56d7112641c29d5a882584714ac3c857d2f3007c5afe9e3c94402762517278ae33b614b26c47071b110c16343c3c95d7263a068cb5d7f95eafbd0a2281b5855861af83a5a463cbff3ed0c67da9549808d28d07569e343689384e853080de3cf16e73f54617d233a57629b840cf016b5ea3e55669a9c5d07871b72cbef3d4899a3d61bf3cac55ca5e30414c8830f1ccb43a9e31e285d782eec70d170aa7b677adcbacbb3d8d6ae075c41b22f857a25847c8a0627f8b574cc8b982b78a8eec704c2a976b328402eba579a097077df950064eaebc59b66a9e87488411421e302d04c04062598ae5adb413886e1fbbfbcdb829c99519b68e1895032754b34bd503dbf8f00c65508d5a352cb5018e523022821b6ab4d9e464d5a4f46f34e0870ed92763e69b1801ded93784bcf9a4c3ce95a9adc9fbbae5724b9a58e3e55ff8a06163e7389ffdcf564ca3e39d2ec1a1a33599bfaf6133372eb8f27cb458c35eeb58c0ff41a8e81d0b41e4a9eb50f0e75b16e7eaa6507682c959bd57357d0a4f19f2b399b5f89c337cfa4861636c179e30b6ba3f6d02a622955878b263988b15e4e67785cc5fc2e544dd522e45a6c31c3bfb9e6d240bcb1b9ea1035f70da9978db250d15ad1401bd31d94ee79ac586f0db93f0a2635dfee05d66c513777961f628a078d494cc8cae7a97da0143527b4c8c6eb5ecbe43bece3829eda1c2fb8b482fd85edcfa9602ce09c8efeb4f27150119a3cc39a239fa4781b9aee2a6c6c66b64cb323264d44c8f87e7b20d2f4990e1b3b8c8d5bc459e7c3fd6e3f5c036064a9e822f54d669d7aba1caa40f701f1a00e160cb6de784636bb2e36649d4a1a711f364573e708073f7bcd7eaada315038d61280dde40b7413a4d47235084ac95a36f63cdfeca5f8fbf97cd859d2c8249d45041c4fe76932a0ee15f15b6d846fd7851067294474a01a13cb28f92953459bf3a16823c61e621695c5fd6f5666193f11ead8109a66601f43013f11a95a19632e187e283a2222f486996a84cd8ce550bfe22d778bdaadf2fd28dc7a66f5f7dd31f09ecc73507926f222c6402115097a6decab3037783b3019ce79df3ea0bd3e2ac846d827da65c7d1ba460d20d68b5a18b3f9bdf85c1f6cd273703ca7314311de1e1d9793d0ea2ef6195b4cb8eb753687b6893014e00aa558b104235288678683688a88f83f1335533d8bc54edb21f5e054a00649ff1c17accd6463e3e61d7286fb392033f950645b8ac5a631c24aaf3e488e5abe93f4e7f6a1bc09d764085e33bca3c6375edaeac7ff73afc24154b0113d67a947df920f7e2345081b30c7e08b9b08b79458dc50b193e7b39ced74bd8a01aef4ff518d2a1278312b1eafab5a250df1a2cd7f26904b3eb2c5e4060795dcdd1461fcced56c4ccc380ace09d44e21de8ca59f8e53cda6e9b56c56a127ca486d01f225041405e2afe48599052f25e788f34516124862f93347acd87186214fa1ff4824d57e0439b980bc0cdeb6a1ac767cf9d59ac8a1b68e60e09f51241e82ef771a1c0dfec4bf68f1876d679259634b4f1ff7b2a0199c724f882981c9184e359e92ef3bb68effe2ecd0ae59565fdfe95ce162e2f8f74885e563201b612c7d2478eede003b0ed5613747bad35ee0841f8989f7db0f0774feca4d8a52734748be8a1e158e3b356b9d210f8949b0991204ff6a755faacbe77f3f025b8f5d8bd3e985568ca71514332db18fcdac3686721b745c75813ce2391c176dea055b56361f625c426090b39923dd66fdbf4b87c9692c4024185e4063def7d3399a195b11e4c374a70cfee2274d46a22b759e22a7c0b1e2c2361afc3427417df6668b7fdfa2b29d311e290c2b04ad6774b43c9d54491b62a3a7d5f7df1dde063de8dabbbe737738d97eb5789a6990135f43f0975bd885fdb554150613a775ea90cf554af3b2b0d725ac6274f9d2d7a1b340cdf03867b3cf10ea3f68a8d93b1ed25f14b5ed2102cdde5056c08677d72046b210831633a165e74ba541c31c71c07d75c2fb88a89b28bfe7653aaa7806fe1027eb2ad3aa50b45bf180b1e7d20a8376fdd6094410a5bd7476fa921fe3c174a0b0d16624c952231da5e615aab7a3c0e4b6d3d6e9c7da8eee219848f52ddcfca72f4e8eeba0a19646a2c9c14b6034416763bfe836224cbbbbd6a988fe69111fb2a83ec40c6788dad9ce45a7b176b524f9b32eac963a7850c9a26b8bb2d2e3f87184eba98963a0a6a0d9b09cd7f46cc046b31bc9d9291a5455ff354f31ecc17cd5cbfaa03b83838be49fbd44b0a4fc894d7d881e344ca33fa676706fab47dda56b4509aa81fbbb03cc45537e0af1c7806e24f4961585e693273f5c333d398355bd58c70dad3f3bcdaf96a76c1362375f1cf05d3374bb8a60cc6761d923ca78996fd6f50c7c786e3598dc4d7b7576103b47a5da363896331d571653e14d215e9e2e8d507ee482de98796b47728f4e981ef2db0ecaabbfd7ef9d2ff9d53705b45735cb59165ddcf824fe1eadbf3fe8b8cab7d5831e111345c18a394bc39f75c596526a5448406949d8bf66409869764bea66113c7d3b147a77546c14382a21b106e0ae994d6b795d68bbbfcefe161917cfebee699f68aafb05be7c870361e517e1ca26eddfc15a0bf8cabe99af7aefb58a37b8588d0d124c55787c88466dd459db685a475b59c440136f9d172ee60fe9bbd23fe2e1b298aedf540f8a807d75a4eaaf84b0865721b00f6c0e79a153ca7c2f9522f17efd6cc73b35394a7fd8ae93097ad8b090040e741039b2f9ef0d79f25965b7a82ebfbf90939c2a6afd287b859a94d6b46964a63f5efad76cb6d217ae546fd7c0010b9043268314969211024cdb431fe0ec684032e7e39143e58affd0da839cb1ed5d3558996a23c1f39e23b158ea17b743bbeeb030103a1733bcc72d0fbe5b6ddebbf10b34f9b88cd68798326278cef11d1ad83e4ef1bdb4d16c5745f7e53f39010da66c159eb35f5ff4ec9c46e6775e5936ee9829097f083fcc016a3122b3026d7145cd13743aa562332c233ec8ee973251aa60eb80a508271c9e227913352a903d9a816d49dadc0ca9401277da5c10df1af76fe5d22339b9737c7b3c10827879e7a25b4ea163758c67cb9a0bf230f8b253214be27efc608b626a727fedc66c4edcee6a5ded1fd2f037d5452793506aa635f564df8625124cea58a6b389880e37810e3aafd11610076d2a1202466e45956549908f20fbeb6afd559afd452980bdee271562f8e42be2de2f9845a573486ac0ca5183c9e6684e4296e7ce91d0f9f35230dd2c799a18667f99a83ae75650ac59e5f340045f044850f54dbf62a7bffba36765c6c26d8d0c1e4cb5c55bce48af1420116bbe18fe501fdc7108804f5ec270712a68126cffddc708b5768ea2e8e1f5f7092a793be9827cd9b5eb8c5430a3db64cbfd537eaa68502ac6adb946dbab598bfa5c41a80c5ae44ee1d6a2c8db0d877aaf11b84212388b79365fd72593b2f45667a0c6407e03df0c779bd63f08dae050f64e23072d06b2c4067950c699feda426e4f508134bd02426d857af32f1cc52f208c8f91288810915fb7509bdff8176633e518df1538a259953e30e3e6cd142aae2a58476166509219afd80ae0b3674fc509d5e912e8081e96f6d4eb8186d0758e5b584fc2634a7c3b3463bc7622f46fd5d708353ba1a5d43fcbf607ec612577f2eb62271a4e94e7ff356ed1036ffc1e342059df7773bb8d47234b69b3df01353e8a81861c1591e250d7d84bdf1cb7e4555ff7bd96a89c3c2ae7070891df3c982806efdd0fe187464c7c7f3bbb3ba81890a341d8e61a0ac7d410392989e52b0c8227d23705f717776f23ddcce6dcbac9cc337cd227a94bb4126bd5204fd5e87183a1b5b3ea420b208a23b86026eea2d7941193f7c73ed94b2117746385cd48217a5aafc35dd90d0b572b64f54bd123b7a0256d1d67a65fd11d70a671dc44630e1560f19e260fcf7c281655ba8a144d18755b67b5e87b1568a0457236e58d175447c1578228a0fc9af785e2bd65747c6c1485747dc43a01cdad4cc4495dfe8a8ebd11cc9b639ba6e344706303a09ae49d325cbbbe105662e039289f5810a2d85ac37b8389838481ef2be00096b27c07bec3a5d8f06f570e129cdbafe136f94a29704c970c9982610ad28628942a4e738831fd1221f484c001671a31f303c250160ef331592b61b5131d812fd406bf6d55fe9bcc604431e59ab631d773a20b813697a7c429e97918d1b30afb9a13b5157bd35544b65efb4abfd59e223df423cd848c9afb331370553c9c99236a928a849ff7bc49eed3e7c20d3c8a99c70a24c8be3fb6fe214258b9c573c8a0a9475cc2de3800cbe20d34c4c82434b00637d456a75a1b9c790759c873db5eb51ec224bd6a81a99db6859bd2247950d6bcf9d2ca43d38b4903a6ca9ceb97700fa7760a2b0ece71ced8b0b371b859a5e2d9c0ab3db22c8b5af9345302b39b8bc89037cde447e8a157ad627b54f64f31d5545a987955fa617ff822b3721a2aeafadf68386b944b38c2502d0ff0bb002f225bd5a050fbc00365b5c90752c44ce517cb9f0a0a070d6d6821d2ed0511d16d4e0e28eeaa279eebd1bcafab91eb74e635316b4851e9da6a7ac1918ae2f6b6ba82cb41538d95684bf9502a4fc93a3a5753de3b2e8c01a49c220fd406cbe6bf340696515d3ce1610706b9fa932026a858867eaa0136e5d4c6c31df66f165aef9ff4c27b144d600a58e2edf78ce93d08a57058cae1fcc2b24f78544633b5f64e0a6eca3bbe22ba37f9da29cc43f4681d52d6f118a6012ffbb01c7a417077763469693754bd5ef851527e3f61156bd4d2d6f67836b2cf0dbdcbbfc4ef78b0132b6ed2228076da50ba539c0239c5745b09303fa1373a515d589b777bf96c4e1d47759a9bf227b3bb184dbfb6fbb3fad0d5b2dd2f49fd69546fd04361900633a7d37b9f8cbc2a75529caec49b3f238be950fef0469b300a66aab83390f5c71500f5b678cb85570aa05b23d10e05a2b5327b535ab376e1c148c7791f362d1bdfe6662a984429c61bba3d972a82af7c7967ad1c37fcbce47dffec2b1b71ccaa89b3283c2eb0f4f174de822d261678c64ee9cd98de3360852e26555d45203cbf037401877fc9239eb0d31842f79c35627d312d684dc2885ecb596c4fe46c2583cad1e8923eb952437dd83cea3cd4e9d6b15a71ac90a05dd89adf1ff6e2c17a54a3d2060a779dd4dd21ed8399a663ec10f68be640b35d5832e45a14285445d660fb5f0ecb19b5f945fa35de96075bcaf9f838a4f583b2aa83f9da1f97e26d396f0e7188af1e358c6f80f23788aa9e5e5f17de574dc7c0cde18c526c11a811ec23235f7a2380a334346e4550282a38533e00e7575ebd44dff98243fc56819f4c9b5e7e6ddcb7fd1f97003e980333d60c8a6e07e81d92635dc10175a68e8933ada4c864b4bc8e2c34e5c30751cfa2033bf330c4b12e75573110462520457980180c5084002c123913e1cbe6e5a3d0229a9a16c85f87d919bd8fb0b866efa4391bd3e0b54faf54eb371285ee37d1aec9b175bc663241cb51186fdfff6220f2002654f2e9de9a3b4326dcc6fd2ac433a28e174b90f6be43a9ac88fdc463647417c09a1c485e8bd7ec8802d22908fcbcf2286a55bb939f258927d5a203fb9b56d184074ca57428c25d2c3a0e7340d8da90ddfaa76e849c5a4ffe43f04594e9fa5d3ed0871995d6a132ccdcca2f32f1932d56b29ca796e7eafa3ce9393869c91772d328ba25c76514614edbd6cf609c3207ca3072611226d40095853e413498ef0712c192166afed9f95c978475847e9b21f2bd31189fa6c5f01e1b3f645b5882c40c9c85b9a2adefa9872a675df43a4c19ee0dbb3ad14dd294dda7fcdbb4634fc130ec3df002cc3e0b0b82995804bb1964a703993179152eb0979e894181a4245d1518880667a77f9db02976ddc80cd4f7d4345e2ec21206034afe6337a857c01be91a802711ef4514b4d30ba9bcd2d8cf468f33b38581bae4b2a1a96afe9918d8aa877c0cb571bb8d58f4bade7aae581eb6d989dba8cf5710fd4838c9a08e00e7eb0a55bda4633bd9d0c5e41d7dbf8bd787b60620759670c2e6a5432b6517b6aa8311c06dade82e21b118d6149d5a1f6d8d6167a985206070f453eb228d4b9dacc395249806c6ce9e06d9992820f4472ee255a4f2c0e3ceb27edbe42b54f0eaf04e1af27b495dc9ba76dd8a3479424b83641332e3577047935c58b171057790db1f5a02b307b09651a2c1b2e2e061b14ffb0a1467240ddaa1543f8a17955e351337c8852967b3ae0f712160667c2003d775b7110c14bf513c5d8cb8208de2516e1f08964b6699d05d052bb0028fe135c233f751b5181156a83b5c120e2ed5fef973eeba422a13bddbdec2c7728c789713af4a35d6267bd912aead8ca23d7e473ba7584e543d17fdf599691cc43c12cb8938a0f937dedac225787914e20eb796ad681e4154257ccf6c1fd2ea9cd9679f60fc9238ffe7535cb828cb56c0b2c5df67d82a1bf274ecf656d611b4491dc1636f9f606f048c5610505c244d30bcc63570eb4053c2e483c1aaa6992f51a672274fce407a17115488498c11aaf10cf31faea590b0dcb5d830696d0d18c3da9d3065bba1292604976c74cf2950680f3e46caddb306e67886ae4345d067d332c90d32f506df64f11ae73f68a0ac696bc87f7a64519bd3a96a6a0a93669b0592e1d029fd1482186daaf4772076bc245ee29592d802f5970a795b5d56b0125c0124125543eaafbe514ca4e8095661ea02a85c75ef4beeef050f713a074d1c0c7ddd600cd109f53164bc851d91643a057bf8d994a41f22a78118249cfbe68370ce80578f3aaba9bb68e41c0e6664b2f3af6d0e8a993f8a7ba642ddb71d3fbbf28b64a4a007aa74e5cc3672a6bac84fed46d6d2525cea22a0c67f5d26ad4f9389ddb3716009545975ff1feb87464e21430c38501d4989d6cd2758fbac2c058165b4bedd5097fa4015957c25d3cd61385dc6018345584e23493a0c3e1f54243801dee167fa9681c9ebfe94325278101e26ad04eb024bd383528c84f187682a741121e0e9cc8df98dbe6b7d6076bac94e830b56646204701b2bc98e3cc5be4fa6f20863862a33e1a5e471689d31dd9b34df6b01b1e5081f02cdb60baa29278940b8c3b4050c144b295f6be88c8742d162d9b1241873582431642fafec4f867fa318a2729b455152e9fb67379b00eceb5f833fad998ded7c10643dc4d6824acca8d85b78078a36b3983ab4ffd86254f5dbbe48e68e5439518e97712a2f4cdb26b7b99e0d887cbff139cbca2e6cfe487acb25b7e40afdb4b95457484ac70ddce7e51a9df1e29631aa42ce44091c0dbc29c4e319dee7360f1ead69cebf5af96c1a31b8a91570d03e5ef4f82353f88ed82e2a36ce9983f4fc7e3e92269a27dd5b5adb21f927c4fef8643c54f1cf937219aed207900aed96c1f4f32b7ccc6bf40009f6e325bb7cbea9478376c1163e1ef44a2be43df5204ac88f2970c223222583a158e66192987f30512fe959842849a8f760717190e8a7a9afc9931d3151887f7fc262ecab84f077ff5f847841e11e5745eae621cfd0456a95a0764c7ebf0cab23ca45a8f05495e9c04e3aa1f88a80ea4e15b1b41ae27e68519cc422cc3d22ccd0af85fd1684402da8c134dcd83fa93672b0f9592d9cf206ba18e85a2ea4efc36ab3f7c6d8df47ad3861ae1afad54e961e1264d7dc9a2e418e5f397a6e09ce1a0fa1cae434e5264a7f76120f31e167ef6d5377c24acfd76dce72c95d60ad720644923d1ac514e2af65a0619bad836c8cc562f5232f60f45726e3944eef591e114841a9b5114df2c28a6434e90ac7bd4dc44b959b56fa042d00eba4e872173717503307da76e7814062f8c50ed7c64892ce7bbcb8e3f5929d333f9d6ad3842ee44aaf062e25cf259bba683be30dd70c1361a4efe55b84a5bd2536d8622c4341c490b4fae4e98b60bbce1ca42df10d13ff59fad2d58bda172032dd3eb189f11a49211c93a572b260e3ee8b5bf72b4bd31c126ccd8e8e91aca5521286d03aadee8bac80be1cbeeaa1a46ed527cf4c3d71cd00194e6fc147f890c5243632b6907d41a889164abe3064557abf1f2bbda90417806deec72d2d020a8f95ee01abc312363c94a504b343fa0edc125e2b8f63e1b6fc58f7f1d5ac58e93e2f3f419108fb7fc95f3ae7fbd92f309a8fcb72c9f886037959906d95fa08fb0b2cb17b6e4d934f772c8a842513b0eba853f61046ef5510e9a0d45b222a712179395a5c67968ee247cfa6c443dfc8d55e082c38b0fb579a732b45abdd7077014d474ba5a617c8fc6c5b7f28e4806d9a7d6ec2d7b8705fbc564dbd238186dedc46b5efcac401a9491dc84021f2fd47751167271efa082d0c350462ddc53e92601eaf39aff469c4571f26ac75b2e08af304ad6040e2020d4700a494902d35752b522f33e80ee2af05d44463a0c9142a3d7853891b13d2c0e4d240d8967202a9e30b2f200cb151bea55b146df70b1a5926a12c8e5b758545edd0c9cb71fd8782f073243b740233bf28c7f397e75531d371c5ca49f5da96cebc46b652b87a0e68b4c1ab622ebd954051b5c39cd53ac18a99559e823ad259b059376a3752568f6a1a6c230fcd1ad8ee749d3eec0899dbee6cf54e3e3a6293203c560a89019221a5a6b88a20370f7d1ad21392ccdde5550e1a5d589d46ba74549cac8274b9c0b110d6e863adf8fd3ecf455a021776115350b5cc0e340f4834677d965c39e576722a492fd28d3fd8a393edac94df68b31e01e073ca8b54bacf6af3db8c1406aa15bf9320f825a07f11bed443c43da93b867ef9ea544e2245cb23c6399889ae209bd61363f9ec51f2880cbf76b62a1089b723d5509c33f415957813652834a996ad753060f1fe32a719b73577f9be98fa416d6d1f3d61997f9806af24cf4a0cbf60e91af46a1e824eea4ac1f2f11102260c947fe397ecc12922904567f580ca862fa52a04f0015e289e13845ad7fe05f53915caf8c92adc2ab79364dd34452c10895668385981cae0e2a4b028aaf418173fe2300ee55f80c1fb48ccbf642e77507897929eb8c294ec3122579bf32cffaf16a45e9e57a1f05fb4c3cc361759868b07d23e795aaaad8a111a1432fa3117802be5f2aa969bfc5509bbe35bbd8374f29b5d7aa7b5a04430b8dca8cdbca2a9cc156b4a5acb4d355a341fdf2d199508778d61dc1cd8d0277286571680b7ded64b4501ec951129806cd3cb7a9abc81876d83c76350ac10831d32da1b472f27233d6105b63e19cec2a8971bd8d24114172bce27521f4f153464960289cb39b95c6341e8dc4382bba8a2bc52bfaf1dd2492dce5fce68060e4b71c78d9c4675b80d0ab4fcfd87e82a22839b2b2e7d729b3345e2608b3101c620722571153162fb9ad3bb5273cad02d8c87ede6cd4928abfd2e5a05607a79420b55942906bb13812f06675f2d6c3fcc30783e0a826ab60dac2970b23886e92c577d4b719f55fc3ded232beb9e383287e10e7d0945e8046255018ee48202b6229702901fa38fff877fbee0cf116300ae4209586910c738ac2608a4145a5ecf796385961e89a34b609f4aaddd44396da8399b75fd9a7e4a50aeb81ae7230bbcca1308daa73fe72930998560e2c5c1c11246ab4a3586a4073f5b651bc2483a6eb0516e01757eb4a768bdcbc51dc4657f660fef6e117789364d6b8a3269a3410f683834a67cd8294ce998a6277ee5786ffdb46eb84b146dda270a60fce48643bb1376362ad93dd4162e233838c1e45e221bc55281c340357f166eb2f939f42090704016d234a0b8f53d141c5301b548a2157d74b772b81289527f31a25fcd39307aad7c685360264bd22ecbd161d76c125e6c9d3f0fdd96b315ca6d31e311a70859f4cd75c90dbca8815e3883f9a30c42b39e7fe21d3e0d5cd770de96f8c53722ec44e61e44f94af803f6f701499aac35ef3b4b542cce8622109e15b0b35786c966917c9e852bf6c14f0346da774baf62bf9f73765ffc06a2b5fc98a9e5d0e1628ebfc430379667a59a6e34b9dbda05183f17bf4ed6afe39dfccbf657f38ad6d65334588dcaac9b8d3b6131d1218266fa321b7180c933ba666611746bc7638fcc83109b4138ab72be6be4b5e51f903d01ec7a956e63b7231cecd7a433115543a050fed1f3f86303827eb60ca5ed89a00e4f9cddadf088ae30ad5e441d313eb4eaffe85c5821c108fbdcdf597309442c511b62e2631244ca65e3fc2cead8916fd65553ea7abe2411f59794ed41a222c2bb71e533c1b1a0869c6123a3f1baf1a75f9b87c99ceec415b6c053fd2f711e648365645cca9bd49acb755c335b5440cf1beb8a2034dd97671c9a4849de0b435faa8798e5ace48f6551ff0494f80458338d7f7067b95be3927b61e71bbbe731f2d9d95e234db1ea9571a946e2de391d7a94dd2e91e851406f320c10c2f0c12d8708a0db09a88b6d3fb2273ccf6a0511a6426c23a103b7c4c2772a8fddf4109c76a0b027a240a7744c248e8c0d7137cd5268ef2aa7c6e5870a8f8acb24eaaca69e83753416a29e376cb5b2244e620edcd1f6c862a387646289218fe25926a70ba0ab69169e22dd967bdca6e38f7b3d68cb4acb7dbf27d98c96476d5e8def0605f9c844f33df4c72468c146a925df24e30484a968423332580d3e80533c456d90ff513626afe41183eb55fbb6f07e4e5901cf622379f345e29f39341a020fc0e06a59c4e0a2ae8c4d555a67fca482321ef5d70af22bb913c48b695ce5d64e05ec8368192bc3db2e4e7ddb459da318744cfb2af0eb9259816a61934d2b4b8ff413fc36921344d9a278fad5cddd2baf5e4c811542dec9e6656159fb1056ffc2512cc5a5be66a1e3a2bf0026bc6ad6b96f662a81773c0dfe252ed802433095f7fb58ef3475987df0b99ae05e86c0d46254bb2dd6da932fd28a7927d489104fb66b85885419619216055e65eb3b43b2c4b25d504ee9401596a222ecdf923865fa63463d6e83ac17c694b26db0cd39704005f56d8c8d5fc4d761c9ef54d48b0771f9daccce6197460d1d17ab6bad4e8edd7e2ddcafe3b7e4071b5839237276a49e2ea2c6b603d047fca716480e3dcb66f5e8f41ff9bfc9f40223a37a646347d639cb4990d245fea5acb3fe8fcb2ed0421cc70b244d6c0d7dd2c47d0ca8015e9131e4eba5425cbfe6ab81a340b2ab288209d31f74df744a5de093a1ab63c2727071e38a96d15e4ac5f8af383520dd394003c5e9a1b0c8b1aec84d6f9f3072568e78aa6fe49a46f6cca2756b76fc41a2f8b5e8048216456c36f52f55ab95a02f8cfb71f53b6bf098d4b384b8663583422b5c1c2fce7ea11f2113ff1caa37de49a8e19766f1daebbaa26fc4f3a687bb27c881e9f16d7bc79017c90f5a39044e0583d98f4b8b983b4ed0279981133b49aa425575b21b86553fbdf3701746488af9ad9751a02da40e4f51774d241254a1fbff833f246ad98f255bb03b0d540e8dfe885c1ea7fcb591d5df098e5264ae7b2e8e308601bb2f36e59d6c35d6c53bdbf8d6ec2982c11e394b36e2475bc59aa21455a34158ffa2b5fdf040e8de6e1ccbf3a405cf3788d01fbcf591dcd8a9c78f4bc5a22c5311311bc361b80f825a682ca51c6c3f30b4ff06fffb258b5d11e6ac35b50867ed3eeed92f7d29466907dd0e691b8741c0fc99b9a608913cddf32debf0356faf75f1c7968a80f2102edda3e640dba241367dcfe913cdc2916d9bbded0e9ea70806f86d11efd9732b0c2923e92d8685606af0db96e1e94d1cd6920c72b9b6ba4f907edf2d882781cc9cefe44dedd23e966204fb467f19c04ebbec3df3b57cceb898e49bca66d3737bf76da6a705b8dbb55a1c80469a827a10a81b512a90be295052fe26cdf5e5f970f0f74e38cc66748e27d9b892bddb3d8089a2cc8f510c04614aae5ffdbc5a08376d7668b434f4fc636c926b6d6fac4060d952e8e6a09c2e227930d93147bdb43840a8389cb03b6a254b005fbe49f60cfbc9c87018fd3de31c5af89b10184ebdc1b4bb8b26195ef2659f97fa143ba275a9d2ece96450eda4eb937d162c01b88beef8cac3e23fe53cb986a9bc5b8bfcdf317a98bd5f65c24ee32a641d9a6d52dbdb8dd35188891645000c6223bb7b9f2990db652c2abce9a8f0c93f9c454f274723b6b0d853cb189c939085c057ce222a9027d429f55613877ee3abeb2801ce2e7582599c473433885416a3df03a5138b89671ac7c0bada01b6f493a8605e1bc0e1d44095afd71a64021a3bb05daf86dff81f4937ad223ef64d3921c4215eb3521b5e37df9b25667cdeabd304c006ea17ebe9f2898944065a50e3677131d3369638c2022202d4d13d84cd91c0185f417ffed122fc2e3cdb238311195e5fdde34ad0d0fc2e49a2fc6548d1d98241d3ff6b044a9940d3be053b441a955f84a029bc1e487f4622606209e4cbe390fe8d7a94b979bcb446e5d39b8e0510d20e2b37cc5a5623063fce05059cb0125df8e9a4270d495811f0a2e58c1fed34e701fb4eda1a83b367b2d41c3fedb66839b537356f518c730fc2a004c403a15f0a8b073509f159e22473cc481a1ec4ff28580737c811d345ad23f0aeb7f10344dbe168cc7b1d3f1af8e60b9e6bbf7684df42522d6eacf5fc5adabbbf5107278551e13edf23bc3a78e45ce7b1fbfc61a4192b83c96355c0e62295bbaffac59a6bff81fabd95d2ad741246c89dc5950304d6dbc1e6dad28ec4f1372eb908907f28cc484da2ec3dbbb2515c9f116260f3cefcda1c97957b707624fb2052ea4b2a4d8d819cddb7ff48f0070c7609ab2b8bc438ef1b8ed1499ed72edfb2fa63048088b6d8caadc4344af3768d4b6f72756af46e40518373192421724657b780959c685f35ccd6530e527b46a6675581232688028d29374842c7768b2a2c6b0769def233267e2f23fde5732ee19b9eaf</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/22/java%E6%89%B9%E9%87%8F%E6%8F%92%E5%85%A5SQL%E5%B7%A5%E5%85%B7/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">java批量插入SQL工具</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/04/vue%E5%AF%BC%E5%87%BAel-table%E5%88%B0Excel/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">vue导出el-table到Excel</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
